This repository serves as a backup of the pages, Lua modules, and templates I authored for the OpenRailwayMap wiki, focusing on French railway signalling. It ensures long-term preservation of the documentation in case of unexpected deletions or inappropriate edits on the wiki platform.
The repository includes JOSM presets specifically designed for mapping French railway signalling. These presets are aligned with the current revision of the wiki documentation.
Recommended method - Install directly from JOSM:
- Go to Presets → Presets preferences...
- Search for French Railway Signalling in the Available Presets search box
- Select the matching preset and click the right-pointing arrow to add it to Active Presets
- Click OK
Alternative method - Manual installation:
This archive contains the latest preset XML files along with the required icon assets (SVG and PNG).
A taginfo project file is generated from the presets by the TagInfoGen tool and published at taginfo.json. It lets the French signalling tags, with their descriptions and icons, appear on taginfo. The presets are the single source of truth, so the file is regenerated automatically on every deployment and never needs manual editing.
The tools/ directory holds C# (.NET 10) console applications that support the presets and the wiki backup. The signalling-specific tools and their shared libraries live together under tools/Signalling/ (one solution); SvgSquarer and WikiBackup are independent.
- SignalAudit - Validates
French_Railway_Signalling.xmland audits it against related sources. Offline, it checks the file against the JOSM tagging preset schema (the schema location is read from the preset file and downloaded automatically), verifies chunk definitions and references, confirms every icon exists on disk with exact path casing (so nothing breaks on the case-sensitive GitHub Pages host), resolves the wiki link of each item either inline or through referenced chunks, and checks structure, menu-path uniqueness andmatch_expressionusage. With--wikiit additionally verifies over the network that wiki links and anchors resolve, and that the preset's tags match the wiki specification (the source of truth). With--yamlit checks that every tag the preset emits is handled by the OpenRailwayMap-vector map. Results can be written as a transcript (--log) and a structured JSON report (--report-json). - SvgSquarer - Normalizes the preset SVG icons to a square
viewBoxso they render consistently in JOSM and on taginfo. - TagInfoGen - Generates the taginfo project file from the presets, published as
taginfo.json. - WikiBackup - Downloads the wiki pages, Lua modules, and templates into
wiki/backup/for long-term preservation.
The shared libraries under tools/Signalling/libs/ are reused by SignalAudit and TagInfoGen: Signalling.Core (tag-rule vocabulary and local/remote source resolution), Signalling.Presets (JOSM preset reader), Signalling.OrmVector (ORM-vector YAML reader), Signalling.Wiki (OSM wiki reader), and Signalling.Sync (the tag-rule comparator behind the cross-source audits).
FrenchRailwaySignalling/
├── .github/
│ ├── pages/ # GitHub Pages static files
│ │ └── index.html # Landing page
│ └── workflows/ # GitHub Actions workflows
│ ├── backup-wiki-pages.yml # Manual backup of wiki pages
│ └── build-and-deploy-presets.yml # Build and deploy presets (+ taginfo.json)
├── presets/ # JOSM preset files and assets
│ ├── French_Railway_Signalling.xml # Preset (single source of truth)
│ └── icons/ # SVG icons (boards, boxes, plates, signals, signs) and SNCF_logo.png
├── tools/
│ ├── Signalling/ # Signalling toolset (single solution)
│ │ ├── SignalAudit/ # Preset validator + cross-source audit (ORM map, OSM wiki)
│ │ ├── TagInfoGen/ # taginfo project file generator
│ │ └── libs/ # Shared libraries
│ │ ├── Signalling.Core/ # Tag-rule vocabulary + source resolvers
│ │ ├── Signalling.Presets/ # JOSM preset reader
│ │ ├── Signalling.OrmVector/ # ORM-vector YAML reader
│ │ ├── Signalling.Wiki/ # OSM wiki reader
│ │ └── Signalling.Sync/ # Tag-rule comparator
│ ├── SvgSquarer/ # SVG viewBox normalizer
│ └── WikiBackup/ # Wiki backup tool
└── wiki/
├── backup/ # Auto-generated wiki backups
└── draft/ # Initial content
🚧 Work in Progress
- 🌐 Main Wiki Page – Tagging in France (EN)
- 🗺️ OpenRailwayMap
- 🚦 SNCF Signalisation Permanente – interactive map of French railway signalling based on SNCF open data
- Wiki Content: Available under the same license as OpenStreetMap wiki content
- JOSM Presets: GPL-3.0
- Tools (
SignalAudit,SvgSquarer,TagInfoGen,WikiBackup) and the sharedSignalling.*libraries: GPL-3.0 - Icons: Original creations or adaptations from Wikimedia Commons and Nicolas Wurtz's signalisation-rfn-svg project