hometools

al9000 Documentation

Or, how the al9000.com static site generator works
April 2026

Overview

These are my notes on the static site builder that runs al9000.com. I wrote it in Rust with MiniJinja providing the horsepower (MiniJinja being the Rust version of Jinja). The implementation is based of dozens of prior iterations I've built over the past several years.

The overall goal is to remove as much friction as possible from making web pages. And, not just blog posts, but pages with any given structure or content. The three keys that support that are:

  1. All content files are templates with the full range of MiniJinja features available for processing.

  2. A global j variable is available in each template that contains the metadata from every content file as well as the data from every .json file on the site.

  3. TODO: Images don't require paths. They can be stored anywhere in the content tree and accessed with their filename alone.

Content Processing

Templates

Global Data

Page Metadata

Images

Filters

Functions

Local Tools

Standard Metadata

Standard page metadata tags I'm using: