Skip to main content

Self-contained unified documentation engine with Material theme.

Project description

DocsForge

One package. One command. Beautiful docs.

PyPI Docs License

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:

  1. docsforge.yml / docsforge.yaml โ† preferred
  2. properdocs.yml / properdocs.yaml
  3. mkdocs.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

Star History Chart

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

docsforge-10.4.0.tar.gz (5.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

docsforge-10.4.0-py3-none-any.whl (11.2 MB view details)

Uploaded Python 3

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

Hashes for docsforge-10.4.0.tar.gz
Algorithm Hash digest
SHA256 c0cd032e292b4da04cae5a100ddad15416bb36197616a5edb68ad582a46d7f4f
MD5 f120a8049b5cb06ea53baade76a37e97
BLAKE2b-256 37fd952683a6f0c7ed47eb382f62e2991422802377a406b31690c0d454fc17e3

See more details on using hashes here.

Provenance

The following attestation bundles were made for docsforge-10.4.0.tar.gz:

Publisher: publish.yml on QQSHI13/docsforge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for docsforge-10.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bf0690eed3fa4444092d625ab367bdc94d5cec7e3a3590ee821fca6d423c46f9
MD5 81f64dcd4d58f7297540015528034f26
BLAKE2b-256 fb3eaead9ebc63d78ad9214e2519f901baa92b253b393eba09ea013ecc04f875

See more details on using hashes here.

Provenance

The following attestation bundles were made for docsforge-10.4.0-py3-none-any.whl:

Publisher: publish.yml on QQSHI13/docsforge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page