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, 143 tests
2. E2E tests — playwright builds the site from docs/, serves it, and checks the UI automatically:
make test-e2e # ~27s, 81 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 color scheme
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
pypiandtestpypienvironments
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mkdocs_zettelkasten-0.6.1.tar.gz.
File metadata
- Download URL: mkdocs_zettelkasten-0.6.1.tar.gz
- Upload date:
- Size: 932.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
741cc444f778425dd6505a753b1102046619ff95b512e1a157e00eaa4bcdc921
|
|
| MD5 |
fa09265e38af81d306471a0e8af0419a
|
|
| BLAKE2b-256 |
7cbcd097189453c5b1e10a661cd594f20cf50ef057c38c5357949eac1a45210a
|
Provenance
The following attestation bundles were made for mkdocs_zettelkasten-0.6.1.tar.gz:
Publisher:
publish.yml on buvis/mkdocs-zettelkasten
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mkdocs_zettelkasten-0.6.1.tar.gz -
Subject digest:
741cc444f778425dd6505a753b1102046619ff95b512e1a157e00eaa4bcdc921 - Sigstore transparency entry: 985192582
- Sigstore integration time:
-
Permalink:
buvis/mkdocs-zettelkasten@12516fb5fa29bb36fdde33cc88abb84daf47de16 -
Branch / Tag:
refs/tags/v0.6.1 - Owner: https://github.com/buvis
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@12516fb5fa29bb36fdde33cc88abb84daf47de16 -
Trigger Event:
push
-
Statement type:
File details
Details for the file mkdocs_zettelkasten-0.6.1-py3-none-any.whl.
File metadata
- Download URL: mkdocs_zettelkasten-0.6.1-py3-none-any.whl
- Upload date:
- Size: 897.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aa081e24a34ce04c90ba1a56897e279c89ffe25ed5b1f8e333d5ee26ff05648c
|
|
| MD5 |
08aba786f9aaead6ef56e1abe29deb84
|
|
| BLAKE2b-256 |
a29e70c0ddeac08697f32ef8101a0e80f64d83c94babacd33ce741e883b757a3
|
Provenance
The following attestation bundles were made for mkdocs_zettelkasten-0.6.1-py3-none-any.whl:
Publisher:
publish.yml on buvis/mkdocs-zettelkasten
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mkdocs_zettelkasten-0.6.1-py3-none-any.whl -
Subject digest:
aa081e24a34ce04c90ba1a56897e279c89ffe25ed5b1f8e333d5ee26ff05648c - Sigstore transparency entry: 985192616
- Sigstore integration time:
-
Permalink:
buvis/mkdocs-zettelkasten@12516fb5fa29bb36fdde33cc88abb84daf47de16 -
Branch / Tag:
refs/tags/v0.6.1 - Owner: https://github.com/buvis
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@12516fb5fa29bb36fdde33cc88abb84daf47de16 -
Trigger Event:
push
-
Statement type: