尚未偵測到更新。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.