{"id":34070593,"url":"https://github.com/buvis/mkdocs-zettelkasten","last_synced_at":"2026-04-09T00:31:23.494Z","repository":{"id":42125267,"uuid":"431609892","full_name":"buvis/mkdocs-zettelkasten","owner":"buvis","description":"This is a Zettelkasten theme and plugin for MkDocs. It renders the MkDocs pages as cards (zettels).","archived":false,"fork":false,"pushed_at":"2026-04-04T20:13:29.000Z","size":2298,"stargazers_count":25,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-04-04T21:59:35.657Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://buvis.github.io/mkdocs-zettelkasten/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/buvis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-11-24T19:48:08.000Z","updated_at":"2026-04-04T20:13:29.000Z","dependencies_parsed_at":"2024-12-26T18:43:09.087Z","dependency_job_id":"fec0a207-2f1d-4b22-bdbb-097105224775","html_url":"https://github.com/buvis/mkdocs-zettelkasten","commit_stats":{"total_commits":34,"total_committers":3,"mean_commits":"11.333333333333334","dds":"0.20588235294117652","last_synced_commit":"4ccf9d5e79f783e384bd8c489d9ba9cf556de453"},"previous_names":["buvis-net/mkdocs-zettelkasten"],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/buvis/mkdocs-zettelkasten","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buvis%2Fmkdocs-zettelkasten","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buvis%2Fmkdocs-zettelkasten/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buvis%2Fmkdocs-zettelkasten/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buvis%2Fmkdocs-zettelkasten/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/buvis","download_url":"https://codeload.github.com/buvis/mkdocs-zettelkasten/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buvis%2Fmkdocs-zettelkasten/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31579836,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-12-14T07:24:24.189Z","updated_at":"2026-04-09T00:31:23.486Z","avatar_url":"https://github.com/buvis.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MkDocs Zettelkasten\n\nThis is a [Zettelkasten](https://zettelkasten.de) theme and plugin for [MkDocs](https://www.mkdocs.org). It renders the MkDocs pages as cards (zettels).\n\nFor more information, head on over to [the documentation](https://buvis.github.io/mkdocs-zettelkasten/)\n\n## Install\n\n```bash\npip install mkdocs-zettelkasten\n```\n\n## Development\n\n```bash\nuv sync                    # install deps\nuv run playwright install  # install browsers (first time only)\n```\n\n### Testing\n\nThree levels of testing, from fast to thorough:\n\n**1. Unit tests** — plugin logic without building the site:\n\n```bash\nmake test      # ~0.3s, ~430 tests\n```\n\n**2. E2E tests** — playwright builds the site from `docs/`, serves it, and checks the UI automatically:\n\n```bash\nmake test-e2e  # ~35s, ~190 tests\n```\n\n**3. Manual acceptance** — build and serve the site from `docs/`, open localhost:8000 in a browser and walk through the checklists in `.local/testscripts/`:\n\n```bash\nmake run                # default (solarized, validation on)\nmake run-selenized      # selenized color scheme\nmake run-editor         # markdown editor enabled\nmake run-no-validation  # validation disabled\nmake run-graph          # knowledge graph enabled\nmake run-preview        # hover previews enabled\nmake run-math           # math rendering enabled\nmake run-no-validation  # validation disabled\n```\n\n## Release\n\n`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.\n\n```bash\nrelease patch|minor|major              # tag and push -\u003e CI publishes to PyPI\nrelease --pre rc1                      # pre-release current version to TestPyPI\nrelease --pre rc1 minor                # bump + pre-release to TestPyPI\nrelease                                # after rc: strip suffix, release stable to PyPI\nrelease --dry-run patch                # preview without doing anything\n```\n\n**First-time setup** (already done for mkdocs-zettelkasten):\n- pypi.org: add trusted publisher (owner: `buvis`, repo: `mkdocs-zettelkasten`, workflow: `publish.yml`, env: `pypi`)\n- test.pypi.org: same, env: `testpypi`\n- GitHub repo settings: create `pypi` and `testpypi` environments\n\nThe 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.\n\nStable releases (no `rc` in tag) auto-create a GitHub Release with a changelog generated from conventional commits since the previous tag.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbuvis%2Fmkdocs-zettelkasten","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbuvis%2Fmkdocs-zettelkasten","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbuvis%2Fmkdocs-zettelkasten/lists"}