one renderer, many subdomains

The docs topology

Every docs site, including this one, is a Prism Document rendered to HTML by the same tool. The content is Markdown, the wire is Prism, the output is a static site per subdomain.

One renderer, many sites

Every docs site is a Prism Document rendered to HTML. You write Markdown; kinogaki convert turns it into a .prisma Document; kinogaki-site composes that with a template and writes a static site. The content is Markdown, the wire is Prism, the output is HTML. It is the same convert-and-render path the codecs expose, dogfooded for the documentation itself. This page came through it.

_md/*.md   →   kinogaki convert   →   *.prisma   →   kinogaki-site   →   _site/  (HTML)

A site is a directory: Markdown sources under _md/, a template.prisma naming the pages and navigation, a stylesheet. The renderer reads one <doc>.prisma per page, derives heading anchors, and emits a multi-page site with grouped navigation. One tool builds them all.

The subdomain map

The libraries and tools each have a bare subdomain, all on one host (Caddy with automatic TLS, Route53 for DNS):

Each is deployed by one command: build the .prisma, render the site, copy it to its directory on the server. Adding a site is adding a directory; the renderer and the deploy script are the same for all of them. The documentation is built the way the product is: one model, rendered many ways.