From 450ce314c18603b045f0ce808f21c8577237ba83 Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Wed, 30 Sep 2026 22:41:43 -0300 Subject: docs/typ gets book and HTML wrappers over one chapter list style.typ lists the chapters in reading order (guide, cheatsheet, scripting, reference, building), each with its content file or none while unwritten. book.typ sets them as an A4 book with a title page and contents, the tutor read from src/tutor.txt last; html.typ sets them as one HTML page with a nav of anchors. An unwritten chapter shows a placeholder, so both compile before the topics exist. Co-Authored-By: Claude Opus 5.5 --- docs/typ/book.typ | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 docs/typ/book.typ (limited to 'docs/typ/book.typ') diff --git a/docs/typ/book.typ b/docs/typ/book.typ new file mode 100644 index 00000000..26191fa7 --- /dev/null +++ b/docs/typ/book.typ @@ -0,0 +1,45 @@ +// The book: every topic in reading order, then the tutor. Facts live in the +// content files named by `chapters` in style.typ; this is layout only. +// typst compile --root . --ignore-system-fonts docs/typ/book.typ +// (--root . because the tutor is read from src/tutor.txt.) +#import "style.typ": palette, mono, chapters, tutor-path + +#set document(title: "pardes") +#set page(paper: "a4", fill: palette.paper, margin: (x: 22mm, y: 24mm)) +#set text(font: "Libertinus Serif", size: 10.5pt, fill: palette.ink, lang: "en") +#set par(justify: true, leading: 0.6em) +#show raw: set text(font: mono, size: 0.9em) +#show heading: set text(fill: palette.tag-name) +#show heading.where(level: 1): it => { + pagebreak(weak: true) + v(18mm) + text(size: 22pt, weight: "bold", it.body) + v(8mm) +} + +// title page +#page(numbering: none, { + v(1fr) + text(size: 34pt, weight: "bold", fill: palette.tag-name)[pardes] + v(4mm) + text(size: 13pt, style: "italic", fill: palette.tag-fg)[acme's tags and three buttons, helix's keys, terminals as panes, the editor as a 9P filesystem] + v(2fr) +}) + +#page(numbering: none, outline(depth: 2)) + +#set page(numbering: "1") +#counter(page).update(1) + +#for ch in chapters { + heading(level: 1, ch.title) + if ch.file == none { + text(style: "italic", fill: palette.tag-fg)[This chapter is not written yet.] + } else { + set heading(offset: 1) + include ch.file + } +} + += The tutor +#text(size: 8pt, raw(read(tutor-path), block: true)) -- cgit v1.3