Files
doc-forge/docs/wiki/02_architecture.md
Vishesh 'ironeagle' Bangotra 8c6c46caf2 feat: add wiki build kind with file-structure-derived navigation
- add build_wiki_nav deriving MkDocs nav from docs/wiki file structure
  (index.md -> Home, numeric prefixes stripped and title-cased, nested
  dirs become groups, natural ordering)
- add --wiki / --wiki-dir to build; wiki-only builds need no --module
- merge wiki nav before generated lib/api nav; wiki Home replaces the
  nav spec Home entry
- add mkdocs.wiki.yml template fragment and nav/cli tests
- dogfood doc-forge's own docs/wiki and regenerate site output
2026-09-11 23:38:23 +05:30

1.1 KiB

Architecture

docforge is split into four horizontal layers. Everything flows top to bottom through the CLI.

Loaders → Models

The docforge/loaders package wraps griffe to extract modules, functions, classes, and Google-style docstring sections. Loaded data is normalized into the object model under docforge/models (Module, Object, Project, Field).

Navigation

docforge/nav parses docforge.nav.yml specs (NavSpec, Resolver, and the MkDocs nav emitter) and, since the wiki kind, derives wiki navigation from the file structure via build_wiki_nav.

Renderers

docforge/renderers turn model data into artifacts:

  • MkDocsRendererdocs/lib/** reference markdown
  • MCPRendererdocs/mcp/** structured documentation

CLI

docforge/cli wires it all together:

  • commands.py — the build command and its --mkdocs / --api / --wiki / --mcp modes
  • mkdocs_utils.py — config generation (mkdocs.yml) including merged wiki + lib + api navigation
  • api_utils.py — OpenAPI loading and API docs generation