Skip to main content

A family of Python-Markdown extensions for section cross-references and bibliography/citation handling, built for use with Zensical

Project description

zendoc

A family of Python-Markdown extensions for section cross-references and bibliography/citation handling, in the spirit of pymdown-extensions: each extension is independent and enabled separately. Built for use with Zensical - configure it the same way as any other Zensical/pymdownx Markdown extension, via zensical.toml.

Status: early, but functional - zendoc.headings, zendoc.refs, zendoc.citations, and zendoc.glossary are implemented and tested.

Full documentation

Installation

pip install zendoc

Extensions

Extension Description
zendoc.headings Gives every heading an id and a hierarchical section number ("1", "1.1", "1.2", "2", ...).
zendoc.refs \ref{id} section cross-references, resolving to the target's current number - similar in spirit to LaTeX's \ref.
zendoc.citations Define a source once, cite it by key anywhere with \cite{id} - auto-generates the bracketed, linked citation text.
zendoc.glossary Define a term once (an acronym expansion, a glossary entry), insert it by id anywhere with \gls{id} - similar in spirit to LaTeX's glossaries package.
import markdown

html = markdown.markdown(
    text,
    extensions=[
        "attr_list", "zendoc.headings", "zendoc.refs", "zendoc.citations", "zendoc.glossary"
    ],
)
# Introduction {: #intro }

See \ref{intro} for background.\cite{skou2023} This uses \gls{css}.

Skoulikari, A. (2023) *Learning Git*.
{: #skou2023 data-cite-text="Skoulikari, 2023" }

**CSS** - Cascading Style Sheets.
{: #css data-term="CSS" }

\ref{intro} resolves to a link reading 1 - the heading's current section number; \cite{skou2023} resolves to [Skoulikari, 2023], linked to that source; \gls{css} resolves to CSS, linked to its own definition. All three stay correct if content is reordered, since resolution happens fresh on every conversion. See the docs for options, multi-page registry sharing, and full syntax details.

Development

python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
pytest

zensical is a core dependency, so zensical serve is available as soon as zendoc is installed - no extra step needed to build the documentation locally.

License

MIT - see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zendoc-0.5.1.tar.gz (31.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zendoc-0.5.1-py3-none-any.whl (22.2 kB view details)

Uploaded Python 3

File details

Details for the file zendoc-0.5.1.tar.gz.

File metadata

  • Download URL: zendoc-0.5.1.tar.gz
  • Upload date:
  • Size: 31.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for zendoc-0.5.1.tar.gz
Algorithm Hash digest
SHA256 380a4ad4fbb58ca8291215c9a6637c3bc7fdb55d327106c647081cdab91c2d9f
MD5 6896bb7ef97cd5eba3211601dc0d7380
BLAKE2b-256 6938fa6cbd5473567f5299e7f68fb65c64abbe43a01ef276a295e915cf9f89cb

See more details on using hashes here.

Provenance

The following attestation bundles were made for zendoc-0.5.1.tar.gz:

Publisher: publish.yml on buckwem/zendoc-extension

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zendoc-0.5.1-py3-none-any.whl.

File metadata

  • Download URL: zendoc-0.5.1-py3-none-any.whl
  • Upload date:
  • Size: 22.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for zendoc-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4c87a0e24a6a612721c96277bfda05a0d952a4770fd7f1ca771038e718030248
MD5 a26c415e49afcb42c93f32205022381c
BLAKE2b-256 b8bd63afa96ecbf5c0f319fe033d83981864c9f8cec4b809b6e5c97a9f75f573

See more details on using hashes here.

Provenance

The following attestation bundles were made for zendoc-0.5.1-py3-none-any.whl:

Publisher: publish.yml on buckwem/zendoc-extension

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page