Newer
Older
"""Generate the code reference pages.
Source: https://mkdocstrings.github.io/recipes/
"""
from pathlib import Path
import mkdocs_gen_files
root = Path(__file__).parent.parent.parent
ignored_modules = ["db", "graphql_api", "main", "migrations"]
module_path = path.relative_to(root).with_suffix("")
doc_path = path.relative_to(root).with_suffix(".md")
full_doc_path = Path("reference", doc_path)
parts = tuple(module_path.parts)
if any(module in parts for module in ignored_modules):
# E.g. ignore generated migration files from SQLAlchemy.
continue
elif parts[-1] == "__init__":
parts = parts[:-1]
doc_path = doc_path.with_name("index.md")
full_doc_path = full_doc_path.with_name("index.md")
elif parts[-1] == "__main__":
continue
with mkdocs_gen_files.open(full_doc_path, "w") as fd:
identifier = ".".join(parts)
print("::: " + identifier, file=fd)
mkdocs_gen_files.set_edit_path(full_doc_path, path.relative_to(root))