2026-03-06

Configuration Reference

All options go in mkdocs.yml.

Minimal example

theme:
  name: zettelkasten

plugins:
  - search
  - zettelkasten

Full example

theme:
  name: zettelkasten
  color_scheme: solarized      # see Color Schemes page
  highlightjs: true
  hljs_style: github           # light mode code theme
  hljs_style_dark: github-dark # dark mode code theme
  hljs_languages: []           # extra languages beyond the common bundle

plugins:
  - search
  - zettelkasten:
      log_level: INFO
      id_key: id
      date_key: date
      last_update_key: last_update
      tags_key: tags
      type_key: type
      maturity_key: maturity
      role_key: role
      sequence_key: sequence
      id_format: '^\d{14}$'
      date_format: '%Y-%m-%d'
      timezone: ''
      file_suffix: .md
      validation_enabled: true
      icon_references: fa fa-book
      icon_backlinks: fa fa-link
      editor_enabled: false
      editor_repo: ''
      editor_branch: master
      editor_docs_prefix: docs
      graph_enabled: false
      preview_enabled: false
      suggestions_enabled: false
      workflow_enabled: false
      transclusion_strip_heading: true
      minify_js: true

Plugin options

Option Type Default Description
log_level string INFO Logging verbosity: DEBUG, INFO, WARNING, ERROR, CRITICAL
id_key string id YAML frontmatter key for zettel ID
date_key string date Frontmatter key for creation date
last_update_key string last_update Frontmatter key for last update date
tags_key string tags Frontmatter key for tags
type_key string type Frontmatter key for note type
maturity_key string maturity Frontmatter key for maturity level
role_key string role Frontmatter key for zettel role (moc, index, etc.)
sequence_key string sequence Frontmatter key for sequence parent
id_format regex ^\d{14}$ Pattern for valid zettel IDs (default: 14-digit timestamp)
date_format string %Y-%m-%d Python strftime format for displayed dates
timezone string (system) Timezone for dates. Falls back to env ZETTELKASTEN_TZ, then system timezone
file_suffix string .md File extension for zettel documents
validation_enabled bool true Show validation warnings for malformed zettels
icon_references string fa fa-book FontAwesome class for references icon
icon_backlinks string fa fa-link FontAwesome class for backlinks icon
editor_enabled bool false Show in-browser edit button on zettels
editor_repo string (empty) GitHub repo in owner/repo format (required if editor enabled)
editor_branch string master Branch for editor commits
editor_docs_prefix string docs Path prefix to docs directory in repo
graph_enabled bool false Enable knowledge graph generation
preview_enabled bool false Enable hover preview JSON
suggestions_enabled bool false Enable link suggestions
workflow_enabled bool false Enable workflow dashboard
transclusion_strip_heading bool true Strip H1 from transcluded content
minify_js bool true Minify JS files in post-build

Theme options

Set under theme: in mkdocs.yml.

Option Type Default Description
color_scheme string solarized Color scheme name (see Color Schemes)
highlightjs bool true Enable syntax highlighting
hljs_style string github Highlight.js theme for light mode
hljs_style_dark string github-dark Highlight.js theme for dark mode
hljs_languages list [] Extra highlight.js language packs to load
nav_style string primary Navbar color style: primary, light, dark
locale string en Language locale
analytics.gtag string (null) Google Analytics 4 measurement ID
shortcuts.help int 191 Keycode for help shortcut (default: ?)
shortcuts.next int 78 Keycode for next page (default: n)
shortcuts.previous int 80 Keycode for previous page (default: p)
shortcuts.search int 83 Keycode for search (default: s)

Vocabulary

The plugin recognizes specific string values for note classification. Any value outside the known set is treated as unset.

Note types (type_key): fleeting, literature, permanent

Maturity levels (maturity_key): draft, developing, evergreen

MOC roles (role_key): moc, index, hub, structure A zettel with one of these roles is treated as a Map of Content — a structural hub that organizes other zettels.

Zettel frontmatter

Each zettel needs YAML frontmatter between --- delimiters:

---
id: 20211122194827
title: My zettel title
tags: [topic-a, topic-b]
date: 2021-11-22
---

Your content here.
  • id (required) — unique identifier matching id_format
  • title (optional) — falls back to first H1 heading, then filename
  • tags (optional) — list of tags for the tag index
  • date (optional) — creation date
  • last_update (optional) — if set, overrides git/filesystem date