summaryrefslogtreecommitdiff
path: root/docs/typ/book.typ
blob: 7223ea1d717867e1055d6f48cecb7c6a2d64ced8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// 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, doc-links, tagline

#set document(title: "pardes")
#doc-links.update(true)
#set page(paper: "a4", fill: palette.paper, margin: (x: 22mm, y: 24mm))
#set text(font: "Libertinus Serif", size: 10pt, fill: palette.ink, lang: "en")
#set par(justify: true, leading: 0.62em, spacing: 1em)
#set list(spacing: 0.8em)
#show heading.where(level: 2): set block(above: 2em, below: 0.9em)
#show heading.where(level: 3): set block(above: 1.5em, below: 0.7em)
#show raw: set text(font: mono, size: 0.9em)
#show raw.where(block: true): it => block(
  width: 100%, fill: palette.tag-bg.transparentize(50%), radius: 2pt,
  inset: (x: 6pt, y: 5pt), above: 0.9em, below: 0.9em, it)
#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, tagline)
  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) #label("ch-" + ch.id)]
  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))