summaryrefslogtreecommitdiff
path: root/docs/typ/style.typ
diff options
context:
space:
mode:
Diffstat (limited to 'docs/typ/style.typ')
-rw-r--r--docs/typ/style.typ39
1 files changed, 34 insertions, 5 deletions
diff --git a/docs/typ/style.typ b/docs/typ/style.typ
index ed713537..065cc210 100644
--- a/docs/typ/style.typ
+++ b/docs/typ/style.typ
@@ -59,8 +59,8 @@
(id: "building", title: "Building, for contributors", file: "building.typ"),
)
-/// The one-line pitch: the A4 sheet's header and the site's landing page.
-#let tagline = "acme's tags and three buttons, helix's keys, terminals as panes, the editor as a 9P filesystem"
+/// The one-line pitch: the A4 sheet's header and the book's title page.
+#let tagline = "acme's tags and three buttons, helix's keys, terminals as panes, the editor as a virtual filesystem over 9P"
/// The tutor, shown as it is in the editor (`Tutor`), from the repo root.
#let tutor-path = "/src/tutor.txt"
@@ -254,9 +254,16 @@
}
}
-/// Where pardes lives and under what licence, for the site's footer (and
-/// any output that wants them). none until decided.
-#let project = (source: "https://git.0x4200.cafe/pardes", license: "ISC")
+/// Where pardes lives and under what licence: install.typ, the site's
+/// landing and its footer all read it. Every mirror holds the same tree;
+/// the first is the one the install line clones. A new mirror is one line.
+#let project = (
+ mirrors: (
+ (name: "sourcehut", web: "https://git.sr.ht/~gbrls/pardes", clone: "https://git.sr.ht/~gbrls/pardes"),
+ (name: "git.0x4200.cafe", web: "https://git.0x4200.cafe/pardes", clone: "https://git.0x4200.cafe/pardes.git"),
+ ),
+ license: "ISC",
+)
/// A glossary: like #pairs, under its own heading. On paper the heading
/// and the table; in HTML a <details> that starts closed, its summary the
@@ -270,3 +277,25 @@
[#heading(title) #lbl]
pairs(..cells)
}
+
+/// Every theme as a picture, on the site's Themes page; nothing on paper,
+/// where forty-odd screenshots would only add weight. Reads
+/// docs/site/media/themes/themes.toml: `ready` (absent means true) and a
+/// [[theme]] per theme, in NextColor's order, with `name`, `file` (under
+/// media/themes/) and `kind` ("light" or "dark").
+#let theme-gallery() = context if html-out() {
+ let g = toml("../site/media/themes/themes.toml")
+ let ready = g.at("ready", default: true)
+ heading[Every theme]
+ html.elem("div", attrs: (class: "gallery"), for t in g.theme {
+ let src = "media/themes/" + t.file
+ html.elem("figure", attrs: (class: "shot " + t.kind), {
+ if ready {
+ html.elem("a", attrs: (href: src), html.elem("img", attrs: (src: src, alt: t.name + " (" + t.kind + ")", loading: "lazy")))
+ } else {
+ html.elem("div", attrs: (class: "pending"), "screenshot to come")
+ }
+ html.elem("figcaption", raw(t.name))
+ })
+ })
+}