Skip to content

Community: Sphinx adapter (third-party plugin) #51

@PythonWoods-Dev

Description

@PythonWoods-Dev

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions