Markdown documentation with first-class Douki API references.
DoukiMD is an opinionated static documentation engine for projects using Douki YAML docstrings. This initial version supports Python projects.
poetry install
poetry run doukimd build --config examples/basic/doukimd.yamlOpen examples/basic/build/index.html to view the generated site.
Use doukimd check to validate without writing files.
- Markdown and saved Jupyter notebook pages with validated metadata.
- Opt-in Jinja in Markdown with project, page, data, and API metadata.
- Static Python API extraction and validation against Douki's shipped schema.
- Public re-exports, properties, data declarations, and callable variants.
- Named API source folders with per-page and per-block selection.
- Native API blocks, virtual API pages, and forward API references.
- Ordered navbar menus and product sidebars with source-scoped API trees.
- Page layouts, trusted HTML opt-in, local branding, and extra stylesheets.
- Local link and heading validation, assets, code highlighting, and JSON symbol and search inventories.
- Local browser search across guides, notebooks, and API sections.
- A bundled theme, local Jinja theme overrides, and explicit context plugins.
- Safe replacement of managed output after successful builds.
See authoring and configuration and the complete example project.
Python 3.10–3.14 is supported. Handwritten modules, classes, and callables require valid Douki docstrings. Data declarations can use their annotations and class-field documentation. Source code is never imported or rewritten. Arx collection requires a future frontend documentation adapter and is explicitly rejected today. Inherited members, incremental builds, preview serving, and cross-project links are follow-ups.
Notebooks render stored results without executing cells; interactive widgets and notebook execution are outside the build.
poetry run makim all.ci
poetry check --lockInfrastructure is adapted from Douki. See contributing for the pinned source and workflow.