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
34 lines
792 B
Python
34 lines
792 B
Python
from pathlib import Path
|
|
from typing import Any
|
|
|
|
from docforge.nav.resolver import ResolvedNav
|
|
|
|
class MkDocsNavEmitter:
|
|
"""
|
|
Converts a ResolvedNav into MkDocs-compatible `nav` data.
|
|
"""
|
|
|
|
def emit(self, nav: ResolvedNav) -> list[dict[str, Any]]:
|
|
"""
|
|
Emit a structure suitable for insertion into mkdocs.yml.
|
|
|
|
Example return value:
|
|
|
|
[
|
|
{"Home": "openapi_first/index.md"},
|
|
{
|
|
"Core": [
|
|
{"OpenAPI-First App": "openapi_first/app.md"},
|
|
...
|
|
]
|
|
}
|
|
]
|
|
"""
|
|
...
|
|
|
|
def _to_relative(self, path: Path, docs_root: Path | None) -> str:
|
|
"""
|
|
Convert a filesystem path to a docs-relative path.
|
|
"""
|
|
...
|