From d1a96e136261437640db078bb1db42bb1aa84974 Mon Sep 17 00:00:00 2001 From: andrew Date: Tue, 28 Apr 2026 11:07:11 -0400 Subject: [PATCH 1/2] chore: cleanup nix dev stuff --- rust-toolchain.toml | 3 +++ shell.nix | 10 ---------- 2 files changed, 3 insertions(+), 10 deletions(-) create mode 100644 rust-toolchain.toml delete mode 100644 shell.nix diff --git a/rust-toolchain.toml b/rust-toolchain.toml new file mode 100644 index 0000000..9cab269 --- /dev/null +++ b/rust-toolchain.toml @@ -0,0 +1,3 @@ +[toolchain] +channel = "stable" + diff --git a/shell.nix b/shell.nix deleted file mode 100644 index afd09a7..0000000 --- a/shell.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ pkgs ? import {} }: - -pkgs.mkShell { - buildInputs = with pkgs; [ - cargo - rustc - rust-analyzer - ]; -} - From 4fc4922256843875b2c832ebcd4bf51cbd87afd6 Mon Sep 17 00:00:00 2001 From: andrew Date: Tue, 28 Apr 2026 11:07:22 -0400 Subject: [PATCH 2/2] add: figure plugin --- prepends/quote.typ | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 prepends/quote.typ diff --git a/prepends/quote.typ b/prepends/quote.typ new file mode 100644 index 0000000..bba122d --- /dev/null +++ b/prepends/quote.typ @@ -0,0 +1,15 @@ +// Typst version 14.0.2 outputs a block quote as a
followed by +// a

for the attribution. This makes it difficult to target the +// attribution for styling. This snippet instead uses a

and +// a
wrapped in a
block. +#show quote.where(block: true): it => { + let inner = html.elem("blockquote", it.body) + if it.attribution != none { + html.elem("figure", { + inner + html.elem("figcaption", it.attribution) + }) + } else { + inner + } +}