尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Interactive map of the Iran–Iraq War (1980–1988): front lines, operations, units and strategic sites on a timeline
翻译准备中
正在加载完整 README。
查看完整 README ↗An interactive, hand-styled SVG map of the Iran–Iraq War (1980–1988), from the 1937 frontier treaty to the 1990 return to the Algiers line. Pick any operation on the timeline and the map flies to it, draws the axes of attack, and redraws the lines of control as they stood afterwards.
Open the map → · If you find it useful, please ⭐ star the repo and share it. Spotted a mistake? Open an issue — or fix it yourself with a pull request (how to contribute).
Front lines are hand-drawn approximations (roughly ±5–10 km) from the cited histories; edges along the Karun and Karkheh trace the real rivers, and every edge on a border is clipped to the actual border. Areas in km² are measured from these drawings, not official figures.
npm install
npm run dev
npm run check # errors and warnings
npm run check -- --all # plus notes
scripts/check-events.ts tests every event against the map it is shown on and against its
Wikipedia summary: attack arrows start on their own side's ground and end on enemy or contested
ground; a won attack's target is held afterwards and a lost one's is not; wartime fighting never
falls back to a pre-war map; dates agree with the article; every zone survives clipping to the
real border; cameras frame their arrows. Front lines are approximate, so it probes within ~10 km.
Flags that have been reviewed and accepted are listed, with reasons, in ACCEPTED at the top.
All generated data is committed under public/; rebuild only when changing it.
| step | script | output |
|---|---|---|
| raw inputs | scripts/fetch-data.sh | scripts/.cache/ (Natural Earth + Overpass) |
| base geography | node scripts/build-geo.mjs | public/data/base.json — Natural Earth 10m countries, provinces, borders, places; OSM rivers & marshes |
| heightmap | node scripts/build-relief.mjs | scripts/.cache/{height,tint,relief-node}.png from AWS Terrain Tiles (z9) |
| 3D relief | Blender -b -P scripts/render-relief.py -- 5200 20 (tiled Cycles; bigger renders swap hard on 16 GB) | scripts/.cache/relief-blender.png |
| tiles | node scripts/slice-tiles.mjs scripts/.cache/relief-blender.png | public/relief/{z}/{x}/{y}.webp, public/data/relief.json |
| Wikipedia | node scripts/fetch-wiki.mjs | public/data/wiki.json (+ checks place coordinates) |
Run scripts/fetch-data.sh first: it downloads the Natural Earth GeoJSON and the two
OpenStreetMap Overpass extracts (osm_rivers.json, osm_extra.json) that build-geo.mjs reads.
The historical content lives in src/data/: events.ts (operations and arrows), zones.ts
(drawn areas of control), phases.ts (which zones are held/contested at each date),
places.ts, refs.ts.
Corrections with a source, new events and fixes are welcome — see CONTRIBUTING.md.