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..56fcf79 --- /dev/null +++ b/extern/rail_diagram @@ -0,0 +1 @@ +Subproject commit 56fcf794f3a9554b9cba96076e74780b3b030d44