undox is a batteries-included static site generator for documentation, with first-class support for aggregating content from multiple repositories.
This project is in early development. This readme is aspirational. Expect frequent breaking changes and missing features.
- Multi-repo support - Combine docs from multiple repositories into a unified site
- Markdown with YAML front matter
- Syntax highlighting for 80+ languages via tree-sitter
- Full-text search powered by Pagefind
- Dark mode with system/light/dark toggle
- Auto-generated navigation from file structure
- Clean URLs (
/guide/configinstead of/guide/config.html)
cargo install undoxOr build from source:
git clone https://github.com/binarymuse/undox
cd undox
cargo build --release# Initialize a new docs site
undox init my-docs
cd my-docs
# Build the site
undox build
# View at _site/index.htmlCreate undox.yaml in your project root:
site:
name: "My Documentation"
url: "https://docs.example.com"
sources:
- name: docs
path: ./contentsources:
- name: main
path: ./content
url_prefix: /
- name: cli
path: ../cli-repo/docs
url_prefix: /cli
- name: api
path: ../api-repo/docs
url_prefix: /apiCreate markdown files in your content directory:
---
title: Getting Started
description: Learn how to use the project
---
# Getting Started
Your content here...| Field | Description |
|---|---|
title |
Page title (overrides filename) |
description |
Meta description for SEO |
hidden |
Hide from navigation |
slug |
Custom URL slug |
Themes are configured via undox-theme.yaml at the theme root:
name: my-theme
pagefind:
root_selector: "main"
exclude_selectors:
- "nav"
- ".sidebar"MIT