This page shows how this website is built. The diagram is a dependency graph showing how the website’s HTML pages are generated from scripts and data in the website’s repository. The diagram is automatically generated by ninja, the tool that runs the scripts in dependency order; the process of generating this diagram and building this web page is described by the sequence of steps ending in ‘out/build-graph/index.html’.
Using the ninja build system to build this website has several advantages. Ninja only re-builds pages when their dependencies change, and runs tasks that don’t depend on each other in parallel; this shortens the build time and saves energy. The design is also highly debuggable and tolerant to faults, because the build is composed of lots of small scripts that each perform one task and emit an intermediate file that is then consumed by the next step. It’s therefore easy to read the output of a step that fails, make manual changes and re-run the build while debugging.