Files
andwati.com/CLAUDE.md
T
andwati a51671d7e4 redesign site as "case file" theme
- new paper/ink palette with single red accent, replacing catppuccin
- self-hosted IBM Plex Serif (display) + Source Serif 4 (body), drop Outfit
- rebuilt homepage masthead, numbered post index, navbar with active states
- switch syntax highlighting + utterances to gruvbox, synced via postMessage
- remove terminal/404 easter egg chrome, clean up remaining inline styles
- fix stray syntax.css link causing a 404
2026-07-16 12:28:34 +03:00

3.5 KiB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

What this is

A personal blog (andwati.com — "Thoughts and Musings") built with Zola, a Rust-based static site generator. All templates, styles, and content are custom (no external theme is used — themes/ is empty).

Commands

  • zola build (or make build) — build the site into public/
  • zola serve (or make serve) — serve locally with live reload
  • make clean — remove public/
  • make all — clean + build
  • ./bin/update-zola — checks the installed Zola version against the latest GitHub release and offers to install it into ~/.cargo/bin
  • node scripts/validate-post.mjs — validates staged post front-matter (run as a pre-commit hook); checks kebab-case filenames and required title/date TOML front-matter fields

There is no JS/CSS build tooling beyond Zola itself: compile_sass = true in zola.toml means Sass under sass/ is compiled directly by Zola.

Docker: Dockerfile does a multi-stage build — zola build in the ghcr.io/getzola/zola image, then serves public/ via static-web-server.

Content structure

  • Posts live in content/posts/, either as a single .md file (content/posts/my-post.md) or as a directory with index.md (content/posts/my-post/index.md) when a post has co-located assets.
  • Front matter is TOML (+++ ... +++), e.g.:
    +++
    title = "..."
    description = "..."
    author = "mockingspectre"
    date = YYYY-MM-DD
    [taxonomies]
    tags = ["..."]
    +++
    
  • tags is the only taxonomy (taxonomies = [{ name = "tags" }] in zola.toml).
  • content/archive/_index.md, content/about.md, content/_index.md are standalone pages.
  • Custom shortcodes available in post bodies: note, tip, warning, danger (callout boxes, see templates/shortcodes/) and youtube(id="...").

Templates & styling

  • templates/base.html is the root layout; page-type templates (index.html, page.html, posts.html, taxonomy_list.html, taxonomy_single.html, archive.html, 404.html) extend it.
  • templates/partials/ holds reusable fragments (header, footer, profile, post-card, post-nav, series-nav, related-posts, toc/toc-sidebar, comments, social-share).
  • templates/feed.json, templates/rss.xml, templates/sitemap.xml, templates/robots.txt are generated-output templates driven by the generate_feeds/generate_robots_txt settings in zola.toml.
  • Sass is split by concern in sass/ (_layout, _header, _footer, _hero, _article, _typography, _theme, _search, _variables, _utilities, _transitions, _404, _scroll-top, _feed) and assembled via sass/main.scss.
  • Site supports light/dark theme toggling (enable_theme_toggle) and full-text search (enable_search, build_search_index = true) — search index and theme logic live in the corresponding JS under static/js/ and Sass partials above.

Site configuration

All site-wide behavior/config (analytics, author/profile info, social links, nav menu, Utterances comment settings, search, related posts, the 404 terminal-themed easter egg) is centralized in zola.toml under [extra]. Check there before hardcoding values in templates.

Agent skills

.agents/skills/ contains pulled-in skills (animation-vocabulary, emil-design-eng, review-animations) tracked via skills-lock.json, useful for UI/animation review and design-engineering guidance when touching templates or Sass.