Golem is an extensible, Python-native static site generator and publishing workbench built from the ground up for technical, interactive documentation using AsciiDoc as its primary source format.
-
AsciiDoc Ecosystem Native: Powered by
asciidoctrinefor standards-compliant Lark AST parsing andasciidoctypefor Chameleon ZPT template rendering supporting 39 standard node types (admonitions, callouts, stem math, tables, footnotes, description lists). -
Fired Clay / Workbench Default Theme: Handcrafted warm-paper aesthetic with automatic dark mode (
prefers-color-scheme), Google Fonts Source family typography (Source Serif 4,Source Sans 3,Source Code Pro), and sub-perceptible SVG paper-grain texture. -
Intelligent Navigation Auto-Discovery: Traverses documentation hierarchies, strips numeric sorting prefixes (
01-intro.adoc→Intro), pins overview root pages, and supports explicit TOML overrides. -
Incremental DAG Build Engine: Tracks file inclusion trees and SHA-256 hashes in
.golem/cache.json, rebuilding only modified files and their inclusion dependents. -
Modern Dev Server with Live Reloading: Zero-dependency multi-threaded dev server with Server-Sent Events (SSE) live browser reloading and non-crashing interactive error overlays.
-
Compiler-Grade Diagnostics: Pinpoint file coordinates, line numbers, contextual source snippets, and caret pointers for AsciiDoc syntax errors.
-
Pluggy Plugin Architecture: Lifecycle hooks for pre-parse, AST creation, ASG resolution, and post-render stages.
-
Doctest & API Integration: Verifies Python listing blocks directly using
asciidoctestand extracts docstrings withasciidocstring.
# In your virtual environment (Python >= 3.14)
pip install golem-docsOr install locally for development:
git clone https://github.com/webmaven/golem.git
cd golem
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"golem init my-docs
cd my-docsThis creates a standard project layout:
my-docs/
├── golem.toml # Site & build configuration
└── content/ # AsciiDoc source files
└── index.adoc # Homepage entry pointGolem supports configuration via golem.toml or directly inside pyproject.toml under [tool.golem]:
[site]
title = "Golem Documentation"
author = "Michael Bernstein"
site_url = "https://webmaven.github.io/golem/"
[build]
content_dir = "content"
output_dir = "dist"
theme = "default"
strict = false
[navigation]
# Optional explicit sidebar order override (defaults to auto-discovery)
nav = [
"index.adoc",
"getting-started/installation.adoc",
"getting-started/quickstart.adoc",
]| Command | Options | Description |
|---|---|---|
|
|
Initialize documentation scaffold ( |
|
|
Generate a new |
|
|
Run DAG compiler to render HTML pages into output directory. |
|
|
Run live-reload HTTP server watching source directories. |
|
|
Extract and verify executable code examples with pytest. |
|
|
Inspect active and installed Pluggy plugins. |
|
|
Inspect active and installed Chameleon theme templates. |
Licensed under the Apache License, Version 2.0.