- 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
1.1 KiB
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:
MkDocsRenderer→docs/lib/**reference markdownMCPRenderer→docs/mcp/**structured documentation
CLI
docforge/cli wires it all together:
commands.py— thebuildcommand and its--mkdocs/--api/--wiki/--mcpmodesmkdocs_utils.py— config generation (mkdocs.yml) including merged wiki + lib + api navigationapi_utils.py— OpenAPI loading and API docs generation