feat: build each doc kind with its own MkDocs config and site

This commit is contained in:
2026-09-12 14:23:22 +05:30
parent 582b6809a0
commit 2ae96f58de
21 changed files with 942 additions and 443 deletions

View File

@@ -23,22 +23,22 @@ def test_wiki_only_build_requires_no_module(
"--wiki",
"--site-name",
"Wiki Site",
"--mkdocs-yml",
"mkdocs.yml",
],
)
assert result.exit_code == 0, result.output
assert mock_mkdocs_build() is True
assert (cwd / "mkdocs.yml").exists()
config = cwd / "docs" / "mkdocs.wiki.yml"
assert config.exists()
content = (cwd / "mkdocs.yml").read_text(encoding="utf-8")
assert "docs_dir: docs" in content
assert "Home: wiki/index.md" in content
assert "Overview: wiki/01_overview.md" in content
content = config.read_text(encoding="utf-8")
assert "docs_dir: wiki" in content
assert "site_dir: ../site/wiki" in content
assert "Home: index.md" in content
assert "Overview: 01_overview.md" in content
def test_wiki_combined_with_mkdocs_keeps_lib_nav(
def test_wiki_and_mkdocs_emit_separate_configs(
cli_runner,
mock_mkdocs_build,
mock_mkdocs_load_config,
@@ -70,9 +70,7 @@ def test_wiki_combined_with_mkdocs_keeps_lib_nav(
"--module",
"testpkg",
"--site-name",
"Combined Site",
"--mkdocs-yml",
"mkdocs.yml",
"Split Site",
],
)
@@ -80,11 +78,16 @@ def test_wiki_combined_with_mkdocs_keeps_lib_nav(
assert mock_mkdocs_build() is True
assert (cwd / "docs" / "lib" / "testpkg" / "mod.md").exists()
content = (cwd / "mkdocs.yml").read_text(encoding="utf-8")
assert "docs_dir: docs" in content
assert "Home: wiki/index.md" in content
# Wiki home replaces the lib home entry
assert "Home: lib/testpkg/index.md" not in content
lib_config = (cwd / "docs" / "mkdocs.lib.yml").read_text(encoding="utf-8")
wiki_config = (cwd / "docs" / "mkdocs.wiki.yml").read_text(encoding="utf-8")
assert "docs_dir: lib" in lib_config
assert "site_dir: ../site/lib" in lib_config
assert "Home: testpkg/index.md" in lib_config
assert "docs_dir: wiki" in wiki_config
assert "site_dir: ../site/wiki" in wiki_config
assert "Home: index.md" in wiki_config
def test_wiki_without_module_flag_ok(
@@ -122,8 +125,6 @@ def test_missing_wiki_dir_errors(cli_runner, mock_mkdocs_build):
"S",
"--wiki-dir",
"docs/wiki",
"--mkdocs-yml",
"mkdocs.yml",
],
)