From f9cd8d69d84798deb3e1db6b28ba506490bb33b4 Mon Sep 17 00:00:00 2001 From: len0rd Date: Wed, 26 Aug 2026 00:22:11 -0400 Subject: [PATCH] install rail diagram --- .gitmodules | 3 +++ conf.py | 29 +++++++++++++++++++++++++++++ extern/rail_diagram | 1 + 3 files changed, 33 insertions(+) create mode 100644 .gitmodules create mode 160000 extern/rail_diagram diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..3dc97a6 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "extern/rail_diagram"] + path = extern/rail_diagram + url = ../rail_diagram diff --git a/conf.py b/conf.py index 0d04bd9..4fd082b 100644 --- a/conf.py +++ b/conf.py @@ -1,5 +1,7 @@ # Sphinx docs configuration for building project documentation from datetime import datetime +from pathlib import Path +import shutil from pygments import token from pygments.lexer import RegexLexer, bygroups @@ -214,3 +216,30 @@ class CanbusDbcLexer(RegexLexer): lexers["dbc"] = CanbusDbcLexer(startinline=True) + + +def copy_rail_diagram(app, exception): + if exception is not None: + return + + project_root = Path(__file__).parent + rail_diagram_dir = project_root / "extern" / "rail_diagram" + output_rail_dir = Path(app.outdir) / "rail" + output_rail_dir.mkdir(parents=True, exist_ok=True) + + shutil.copy2( + rail_diagram_dir / "railroad_diagram.html", + output_rail_dir / "index.html", + ) + shutil.copy2( + rail_diagram_dir / "railroad_app.js", + output_rail_dir / "railroad_app.js", + ) + shutil.copy2( + rail_diagram_dir / "railroad_data.js", + output_rail_dir / "railroad_data.js", + ) + + +def setup(app): + app.connect("build-finished", copy_rail_diagram) diff --git a/extern/rail_diagram b/extern/rail_diagram new file mode 160000 index 0000000..dd5ed09 --- /dev/null +++ b/extern/rail_diagram @@ -0,0 +1 @@ +Subproject commit dd5ed091f91ab789bc829cd9754da6d830e4c038