- Require `--site-name` when generating mkdocs.yml to ensure valid configs - Inject site_name explicitly into generated mkdocs.yml - Echo MkDocs serve URL (http://127.0.0.1:8000) before starting server - Fix MkDocs nav emission to correctly resolve docs-relative paths - Align MkDocs-related optional dependencies with a compatible, pinned set These changes make MkDocs generation valid by default, improve UX when serving, and prevent nav path and plugin compatibility issues.
46 lines
822 B
Python
46 lines
822 B
Python
from pathlib import Path
|
|
from typing import Any, Dict, Optional
|
|
|
|
import click
|
|
|
|
|
|
def _load_template(template: Optional[Path]) -> Dict[str, Any]:
|
|
...
|
|
|
|
|
|
@click.command("mkdocs")
|
|
@click.option(
|
|
"--site-name",
|
|
required=True,
|
|
help="MkDocs site_name (required)",
|
|
)
|
|
@click.option(
|
|
"--docs-dir",
|
|
type=click.Path(path_type=Path),
|
|
default=Path("docs"),
|
|
)
|
|
@click.option(
|
|
"--nav",
|
|
"nav_file",
|
|
type=click.Path(path_type=Path),
|
|
default=Path("docforge.nav.yml"),
|
|
)
|
|
@click.option(
|
|
"--template",
|
|
type=click.Path(path_type=Path),
|
|
default=None,
|
|
)
|
|
@click.option(
|
|
"--out",
|
|
type=click.Path(path_type=Path),
|
|
default=Path("mkdocs.yml"),
|
|
)
|
|
def mkdocs_cmd(
|
|
docs_dir: Path,
|
|
nav_file: Path,
|
|
template: Optional[Path],
|
|
out: Path,
|
|
site_name: str,
|
|
) -> None:
|
|
...
|