fix: make MkDocs generation filesystem-complete and package-aware
- Add filesystem-based module discovery via `discover_module_paths` - Decouple documentation coverage from Python import behavior - Ensure GriffeLoader receives a full module list instead of a single root - Make MkDocs renderer level-agnostic using global package detection - Emit `index.md` only for true packages, suppress `<package>.md` - Mirror full dotted module hierarchy into nested docs directories - Update CLI, exports, and type stubs to expose discovery helper - Align tests with filesystem-driven module coverage This fixes missing docs for submodules and removes invalid package `.md` files.
This commit is contained in:
@@ -1,12 +1,18 @@
|
||||
from pathlib import Path
|
||||
|
||||
from docforge.loader import GriffeLoader
|
||||
from docforge.loader import GriffeLoader, discover_module_paths
|
||||
from docforge.renderers.mkdocs import MkDocsRenderer
|
||||
|
||||
|
||||
def test_mkdocs_emits_all_modules(tmp_path: Path) -> None:
|
||||
loader = GriffeLoader()
|
||||
project = loader.load_project(["docforge"])
|
||||
discovered_paths = discover_module_paths(
|
||||
"docforge",
|
||||
Path(r"C:\Users\vishe\WorkSpace\code\aetos\doc-forge")
|
||||
)
|
||||
project = loader.load_project(
|
||||
discovered_paths
|
||||
)
|
||||
|
||||
renderer = MkDocsRenderer()
|
||||
renderer.generate_sources(project, tmp_path)
|
||||
@@ -32,5 +38,24 @@ def test_mkdocs_emits_all_modules(tmp_path: Path) -> None:
|
||||
else:
|
||||
expected.add("/".join(parts) + ".md")
|
||||
|
||||
# expected = {
|
||||
# 'docforge/cli/main.md',
|
||||
# 'docforge/renderers/index.md',
|
||||
# 'docforge/loader/index.md',
|
||||
# 'docforge/model/index.md',
|
||||
# 'docforge/nav/index.md',
|
||||
# 'docforge/renderers/mkdocs.md',
|
||||
# 'docforge/index.md',
|
||||
# 'docforge/loader/griffe_loader.md',
|
||||
# 'docforge/model/object.md',
|
||||
# 'docforge/cli/index.md',
|
||||
# 'docforge/nav/resolver.md',
|
||||
# 'docforge/renderers/base.md',
|
||||
# 'docforge/nav/mkdocs.md',
|
||||
# 'docforge/nav/spec.md',
|
||||
# 'docforge/model/module.md',
|
||||
# 'docforge/cli/mkdocs.md',
|
||||
# 'docforge/model/project.md'
|
||||
# }
|
||||
missing = expected - emitted
|
||||
assert not missing, f"Missing markdown files for modules: {missing}"
|
||||
|
||||
Reference in New Issue
Block a user