Self-contained unified documentation engine with Material theme.
Project description
DocsForge
One package. One command. Beautiful docs.
Write your documentation in Markdown. Build a professional static site in seconds. Deploy anywhere.
๐ Documentation | ๐ฆ PyPI | ๐ GitHub
What is DocsForge?
DocsForge is a self-contained documentation engine. Everything you need is bundled into one package:
- โก Engine โ ProperDocs (MkDocs fork), vendored
- ๐จ Theme โ Material for MkDocs, vendored
- ๐ Plugins โ 7 plugins built-in (search, tags, blog, info, meta, minify, privacy)
- ๐ Markdown โ 31 extensions pre-configured (all pymdownx + python-markdown)
- โ Math โ KaTeX vendored (
$$...$$works out of the box) - ๐๏ธ Highlighting โ Pygments for code blocks at build time
- ๐ Diagrams โ TikZ support (auto-compiled to SVG)
- ๐ Search โ Lunr.js client-side full-text search
- ๐ Dark mode โ Light/dark toggle with auto system detection
- ๐ฑ Offline โ Service worker caches all assets for PWA support
- ๐ค Fonts โ Self-hosted (privacy plugin downloads Google Fonts locally)
pip install docsforge and you're done. No CDN, no extra config, no external dependencies.
Installation
pip install docsforge
Requires Python 3.10+.
Quick Start
# Create a new project
docsforge new my-docs
cd my-docs
# Start the dev server
docsforge serve
# โ http://localhost:8000
# Build for production
docsforge build
# โ site/
What's Built In
๐ Documentation
| Feature | Status |
|---|---|
Admonitions (!!! note) |
โ Zero config |
Math ($$...$$) |
โ Zero config |
| Code highlighting | โ Zero config |
| Tables, task lists, footnotes | โ Zero config |
| Definition lists, abbreviations | โ Zero config |
| Content tabs, diagrams (Mermaid, TikZ) | โ Zero config |
๐ Discovery
| Feature | Status |
|---|---|
| Full-text search (Lunr.js) | โ Zero config |
| Tags and tag pages | โ Zero config |
| Navigation with sections/tabs | โ Zero config |
| Table of contents | โ Zero config |
๐จ Theming
| Feature | Status |
|---|---|
| Material theme (light/dark) | โ Zero config |
| Customizable colors/fonts | โ Zero config |
| 14,000+ icons | โ Zero config |
๐ Blogging
| Feature | Status |
|---|---|
| Author profiles | โ Zero config |
| Categories, tags, archives | โ Zero config |
| Pagination | โ Zero config |
| RSS feeds | โ Zero config |
๐ Publishing
| Feature | Status |
|---|---|
| Static HTML output | โ Zero config |
| GitHub Pages workflow | โ Zero config |
| PWA with offline support | โ Zero config |
| Minified HTML/CSS/JS | โ Zero config |
Config File
DocsForge looks for config in this priority:
docsforge.yml/docsforge.yamlโ preferredproperdocs.yml/properdocs.yamlmkdocs.yml/mkdocs.yamlโ legacy fallback
Minimal docsforge.yml
site_name: My Documentation
site_url: https://example.com/
That's it. All plugins, extensions, and theme settings use sensible defaults.
Full example
site_name: My Docs
site_url: https://example.com/
site_author: Your Name
repo_url: https://github.com/username/repo
nav:
- Home: index.md
- Getting started: getting-started.md
- Blog:
- blog/index.md
theme:
name: material
palette:
- media: "(prefers-color-scheme: light)"
scheme: default
primary: indigo
accent: indigo
toggle:
icon: material/brightness-7
name: Switch to dark mode
- media: "(prefers-color-scheme: dark)"
scheme: slate
primary: indigo
accent: indigo
toggle:
icon: material/brightness-4
name: Switch to light mode
CLI Reference
| Command | Description |
|---|---|
docsforge new <name> |
Scaffold a new project |
docsforge serve |
Live-reload dev server |
docsforge build |
Static site build |
docsforge gh-deploy |
Deploy to GitHub Pages |
PWA / Offline Support
Every built site includes a service worker that:
- Caches HTML pages (network-first, updates in background)
- Caches assets (CSS, JS, fonts, images โ cache-first for speed)
- Versioned updates โ Each build generates a unique SW hash, forcing browser refresh
- Auto cleanup โ Old caches purged when new version activates
No configuration needed. Works offline after the first visit.
Changelog
See full changelog in the documentation.
Recent highlights:
- v10.3.3 โ Versioned service worker with auto cache cleanup
- v10.3.0 โ TikZ diagrams, blog plugin, theme playground
- v10.1.0 โ Zero-config Markdown, KaTeX math, dark mode toggle
License
LGPL v3-or-later
DocsForge is built by QQ (Cyrus) and Nova โ๏ธ
Star History
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file docsforge-10.4.0.tar.gz.
File metadata
- Download URL: docsforge-10.4.0.tar.gz
- Upload date:
- Size: 5.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c0cd032e292b4da04cae5a100ddad15416bb36197616a5edb68ad582a46d7f4f
|
|
| MD5 |
f120a8049b5cb06ea53baade76a37e97
|
|
| BLAKE2b-256 |
37fd952683a6f0c7ed47eb382f62e2991422802377a406b31690c0d454fc17e3
|
Provenance
The following attestation bundles were made for docsforge-10.4.0.tar.gz:
Publisher:
publish.yml on QQSHI13/docsforge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
docsforge-10.4.0.tar.gz -
Subject digest:
c0cd032e292b4da04cae5a100ddad15416bb36197616a5edb68ad582a46d7f4f - Sigstore transparency entry: 1567576372
- Sigstore integration time:
-
Permalink:
QQSHI13/docsforge@b765f63ed4b6fa0fd3ef52a26b615a6e8751d409 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/QQSHI13
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b765f63ed4b6fa0fd3ef52a26b615a6e8751d409 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file docsforge-10.4.0-py3-none-any.whl.
File metadata
- Download URL: docsforge-10.4.0-py3-none-any.whl
- Upload date:
- Size: 11.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf0690eed3fa4444092d625ab367bdc94d5cec7e3a3590ee821fca6d423c46f9
|
|
| MD5 |
81f64dcd4d58f7297540015528034f26
|
|
| BLAKE2b-256 |
fb3eaead9ebc63d78ad9214e2519f901baa92b253b393eba09ea013ecc04f875
|
Provenance
The following attestation bundles were made for docsforge-10.4.0-py3-none-any.whl:
Publisher:
publish.yml on QQSHI13/docsforge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
docsforge-10.4.0-py3-none-any.whl -
Subject digest:
bf0690eed3fa4444092d625ab367bdc94d5cec7e3a3590ee821fca6d423c46f9 - Sigstore transparency entry: 1567576402
- Sigstore integration time:
-
Permalink:
QQSHI13/docsforge@b765f63ed4b6fa0fd3ef52a26b615a6e8751d409 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/QQSHI13
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b765f63ed4b6fa0fd3ef52a26b615a6e8751d409 -
Trigger Event:
workflow_dispatch
-
Statement type: