Summary
Create a third-party adapter package (zenzic-sphinx) that teaches Zenzic to understand Sphinx documentation projects.
Important: This is an external plugin, not a core change
Zenzic's architecture supports third-party adapters via the zenzic.adapters entry-point group. Sphinx support should be shipped as a separate Python package, not added to the core repository. See Writing an Adapter for the full guide.
Scope
The adapter package should:
- Parse
conf.py as plain text to extract master_doc, language, extensions, and source suffix (Pillar 2: never import conf or exec() it)
- Implement the
BaseAdapter protocol (~5 methods)
- Handle Sphinx toctree structure for reachability classification
- Support
.rst and .md source files
- Register via entry-point in its own
pyproject.toml:
[project.entry-points."zenzic.adapters"]
sphinx = "zenzic_sphinx:SphinxAdapter"
Reference
Why external?
The core ships 4 adapters that the team dogfoods directly (MkDocs, Docusaurus, Zensical, Vanilla). Community-driven adapters live as independent packages — no Zenzic release required to add engine support.
Summary
Create a third-party adapter package (
zenzic-sphinx) that teaches Zenzic to understand Sphinx documentation projects.Important: This is an external plugin, not a core change
Zenzic's architecture supports third-party adapters via the
zenzic.adaptersentry-point group. Sphinx support should be shipped as a separate Python package, not added to the core repository. See Writing an Adapter for the full guide.Scope
The adapter package should:
conf.pyas plain text to extractmaster_doc,language,extensions, and source suffix (Pillar 2: neverimport conforexec()it)BaseAdapterprotocol (~5 methods).rstand.mdsource filespyproject.toml:Reference
Why external?
The core ships 4 adapters that the team dogfoods directly (MkDocs, Docusaurus, Zensical, Vanilla). Community-driven adapters live as independent packages — no Zenzic release required to add engine support.