Getting Started with NASApunk

Install the theme, set your site identity, and write the first post.

Doc no.
TN-004
Date
2026-10-18
Revised
2026-10-25
GMT day
2026:291
Est. read
2 min

01Requirements#

  • Tola 0.8 or newer.
  • Node.js, for the Pagefind search index. Run npm install once in the site directory.
sh
npm install
tola dev       # live reload, search index skipped
tola build     # writes public/, search index included

02Site identity#

Most values live in tola.toml under [site]: title, author, description and language. The rest live in config.typ at the site root, among them:

typst
#let doc-prefix = "TN"   // TN-001, TN-002, ... under each post title
#let mission = none      // e.g. "RESEARCH NOTES" next to the site title

Header links, footer links, posts per page and the feed are set there too.

03Writing a post#

Every .typ file under content/posts/ is a post. It declares its metadata with tola-meta and holds only its text:

typst
#import "@tola/source:0.0.0": tola-meta

#tola-meta((
  title: "Post title",
  date: "2026-10-18",
  updated: "2026-10-25",     // optional; last revision
  summary: "One line for the post list and the Open Graph card.",
  tags: ("systems", "notes"),
  series: "Theme Tour",   // optional
  weight: 1,                 // optional; home page order, default 100
  draft: false,              // optional; drafts are not published
))

= First section

Text.

Unknown keys fail the build, so a typo in the metadata is caught early. The URL follows the file path: content/posts/foo/bar.typ publishes at /posts/foo/bar/.

04Components#

utils/ui.typ holds the in-article components: callout, hint, fold, term, img, gallery, cols, xref and related. utils/diagram.typ draws box-and-arrow diagrams and timelines in the site palette; [Tour 02] Diagrams and Timelines shows both. utils/cetz.typ is a drop-in cetz that renders to inline SVG, and utils/figure.typ holds colours and helpers for detailed drawings; [Tour 03] Figures with CeTZ puts them to work and goes through them one by one.