Skip to main content

Add Zettelkasten features to MkDocs

Project description

MkDocs Zettelkasten

This is a Zettelkasten theme and plugin for MkDocs. It renders the MkDocs pages as cards (zettels).

For more information, head on over to the documentation

Install

pip install mkdocs-zettelkasten

Development

uv sync                    # install deps
uv run playwright install  # install browsers (first time only)

Testing

Three levels of testing, from fast to thorough:

1. Unit tests — plugin logic without building the site:

make test      # ~0.3s, 124 tests

2. E2E tests — playwright builds the site from docs/, serves it, and checks the UI automatically:

make test-e2e  # ~27s, 63 tests

3. Manual acceptance — build and serve the site from docs/, open localhost:8000 in a browser and walk through the checklists in .local/testscripts/:

make run                # default (solarized, validation on)
make run-selenized      # selenized theme
make run-editor         # markdown editor enabled
make run-no-validation  # validation disabled

Release

mise adds dev/bin to PATH. Tags with rc in the name publish to TestPyPI; stable tags go to PyPI. Manual workflow dispatch defaults to TestPyPI.

release patch|minor|major              # tag and push -> CI publishes to PyPI
release --pre rc1                      # pre-release current version to TestPyPI
release --pre rc1 minor                # bump + pre-release to TestPyPI
release                                # after rc: strip suffix, release stable to PyPI
release --dry-run patch                # preview without doing anything

First-time setup (already done for mkdocs-zettelkasten):

  • pypi.org: add trusted publisher (owner: buvis, repo: mkdocs-zettelkasten, workflow: publish.yml, env: pypi)
  • test.pypi.org: same, env: testpypi
  • GitHub repo settings: create pypi and testpypi environments

The release script updates the pinned version in .github/workflows/requirements.txt (used by docs deployment), commits, tags, and pushes both. Version derives from git tags via hatch-vcs — no version field in pyproject.toml. This works for pure Python packages. Projects with native extensions (like buvis/gems with maturin/Rust) need an explicit version in pyproject.toml because maturin reads it at build time.

Stable releases (no rc in tag) auto-create a GitHub Release with a changelog generated from conventional commits since the previous tag.

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

mkdocs_zettelkasten-0.5.0.tar.gz (814.4 kB view details)

Uploaded Source

Built Distribution

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

mkdocs_zettelkasten-0.5.0-py3-none-any.whl (758.1 kB view details)

Uploaded Python 3

File details

Details for the file mkdocs_zettelkasten-0.5.0.tar.gz.

File metadata

  • Download URL: mkdocs_zettelkasten-0.5.0.tar.gz
  • Upload date:
  • Size: 814.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mkdocs_zettelkasten-0.5.0.tar.gz
Algorithm Hash digest
SHA256 d96d9cec21e9c5bd02f188579f412eb3d164037e36dfa1c76c65cb9c1ce1d5c1
MD5 bfd908e84af9c09a08a0285e47342096
BLAKE2b-256 cf8146cc75746ce41bf0b136830878a5aa56f8f62c000b53e32325cc6a610b79

See more details on using hashes here.

Provenance

The following attestation bundles were made for mkdocs_zettelkasten-0.5.0.tar.gz:

Publisher: publish.yml on buvis/mkdocs-zettelkasten

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

File details

Details for the file mkdocs_zettelkasten-0.5.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mkdocs_zettelkasten-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 313f4e2f5f334e05e757fde94b4f4fde7911e2dce2ea32aac1980b311c5a6184
MD5 23359a553437edcab7a683ebd9822a3f
BLAKE2b-256 dd018879b7943d3b1c96fbde589ac4ce19225c179fc23e810021f55a39f6ef28

See more details on using hashes here.

Provenance

The following attestation bundles were made for mkdocs_zettelkasten-0.5.0-py3-none-any.whl:

Publisher: publish.yml on buvis/mkdocs-zettelkasten

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