This is the toolset used to make this site. Its design largely fell out of the set of requirements for the site and my own desire to give myself as much freedom as possible to change things without obsoleting code.
In short, this is a set of small binaries using the golang template system which make constrained bits of the site, with as little “business” logic in them as is reasonable. It’s driven by shell scripts that should ideally be below 20 lines each, with the shell scripts building the source and content organization. When in doubt, environment information is passed in rather than embedded. Templates do bake-in some information about the site organization, which is done for simplicity of the driving code.
The tool that walks the code tree and builds the code browsing webmatter cares only about the given source tree. It intentionally does not do anything with scm, both because it wasn’t a necessity for the site and to give me freedom to experiment with scm tools other than git for individual projects.
Advanced functionality such as scm information will come later, as needed. I plan on building small, independent tools for individual parts, to be chain run. By that, I mean that each tool should be run on just its own domain, and if the output of it is supposed to be inside of another page, then the template will create small fragments to be consumed by other templates.