Skip to content

Get started!!

This is the second menu item, and it exists for a structural reason rather than a content one: overrides/home.html builds its Quick start button from page.next_page.url, and that is None on a single-item nav — so a one-page site fails the build. It doubles as the place to show what the theme does.

Build

No pyproject.toml, no venv, no install step. Zensical is resolved straight from PyPI by uvx:

uvx zensical==0.0.65 build      # to site/
uvx zensical==0.0.65 serve     # live preview on localhost:8000

Pinning is deliberate. uvx re-resolves on every run, and 0.0.65 is Alpha — 0.1.0 begins the dependable release line on 2026-11-05.

Admonitions

See admonitions.

Note

A note admonition, for helpful information.

Warning

A warning admonition. Be careful.

Collapsible

Click to expand

Hidden until clicked. Good for FAQs and long asides.

Code blocks

build.py
def build(pages: int) -> str:
    target = "site/"          # (1)!
    return f"{target}{pages} pages"

build(43_000)
  1. Annotations attach notes to specific lines.

Content tabs

uvx zensical==0.0.65 build
mkdocs build

Diagrams

graph LR
  A[Markdown] --> B{Zensical}
  B -->|0.0.65| C[Pinned build]
  B -->|0.1.0+| D[Dependable line]

Task lists and formatting

  • Add Zensical
  • Copy the Material theme overrides
  • Wire custom_dir and variant = "classic"
  • Measure search index size at 43k pages

  • marked

  • inserted
  • deleted
  • H2O
  • Ctrl+Alt+Del

Footnotes and tooltips

A sentence with a footnote.1 Hover it for a tooltip: this is one.

At scale

The thing to measure first is search, not build time. Search is a client side index; at 43k pages that index is a large payload. Generate a synthetic corpus early and check index size and query latency before committing.

Incremental rebuilds are the reason to prefer Zensical here — it rebuilds only the content affected by a change, so cache on content hashes in CI rather than a full build every commit.


  1. Footnote body. ↩