Files
doc-forge/docs/wiki/02_components.md
Vishesh 'ironeagle' Bangotra 06ffd2febd chore(release): 0.0.7
Squash-merge lib-standardisation: adopt repo standards across packaging,
tooling, docs, and CI.

- standardize pyproject.toml (canonical packaging, lint config, extras, GSDFC pydoclint)
- add py.typed marker, modernize type hints and Google-style docstrings
- nest generated docs under docs/lib and docs/mcp; add hand-written wiki
- adopt standard Type A PyPI CI pipeline (tag==version guard + quality gate)
- promote generated CHANGELOG.md; bump version to 0.0.7
2026-10-17 02:16:44 +05:30

1.4 KiB
Raw Blame History

Components

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


1. 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 (Project, Module, DocObject).


2. 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.


3. Renderers

docforge/renderers turn model data into artifacts:

  • MkDocsRenderer → docs/lib/** reference markdown
  • MCPRenderer → docs/mcp/** structured documentation

4. Servers

docforge/servers serves generated artifacts over live protocols:

  • MCPServer → serves a pre-generated docs/mcp/** bundle through MCP resources (docs://index, docs://nav, docs://modules/{module})

5. CLI

docforge/cli wires it all together:

  • commands.py — the build command and its --mkdocs / --api / --wiki / --mcp modes
  • mkdocs_utils.py — per-kind config generation (docs/mkdocs.{lib,api,wiki}.yml) with navigation re-rooted to each kind's docs_dir
  • api_utils.py — OpenAPI loading and API docs generation