diff options
| author | Maxwell Beck <max@rastertail.net> | 2026-07-13 08:22:05 -0500 |
|---|---|---|
| committer | Maxwell Beck <max@rastertail.net> | 2026-07-13 08:22:05 -0500 |
| commit | 1363e204b50d7901ba23b35f87aaae63c8c4deec (patch) | |
| tree | 08f89cda0a2eb1a94874a73f26b84f061b8ff695 | |
init
| -rw-r--r-- | flake.lock | 24 | ||||
| -rw-r--r-- | flake.nix | 25 | ||||
| -rw-r--r-- | raster.typ | 87 |
3 files changed, 136 insertions, 0 deletions
diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..cb63344 --- /dev/null +++ b/flake.lock @@ -0,0 +1,24 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1783776592, + "narHash": "sha256-+GVwKnbbSmf4cWMJyRzvw8H5yFknmkLoPD5v6snqPzo=", + "rev": "e7a3ca8092b61ff85b6a45bf863ea2b2d6a661b3", + "type": "tarball", + "url": "https://releases.nixos.org/nixos/unstable/nixos-26.11pre1032869.e7a3ca8092b6/nixexprs.tar.xz" + }, + "original": { + "type": "tarball", + "url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..b4c5334 --- /dev/null +++ b/flake.nix @@ -0,0 +1,25 @@ +{ + inputs = { + nixpkgs.url = "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz"; + }; + + outputs = { self, nixpkgs }: let + system = "aarch64-darwin"; + pkgs = nixpkgs.legacyPackages.${system}; + + fonts = with pkgs; [ gyre-fonts ]; + in { + devShells.${system} = rec { + rastertype = pkgs.mkShell { + packages = [ pkgs.typst ]; + shellHook = '' + export TYPST_FONT_PATHS="${pkgs.symlinkJoin { name = "rastertype-fonts"; paths = fonts; }}/share/fonts" + export TYPST_IGNORE_SYSTEM_FONTS=true + export TYPST_IGNORE_EMBEDDED_FONTS=true + export TYPST_FEATURES=html + ''; + }; + default = rastertype; + }; + }; +} diff --git a/raster.typ b/raster.typ new file mode 100644 index 0000000..de72fa5 --- /dev/null +++ b/raster.typ @@ -0,0 +1,87 @@ +#let raster( + paper: "a4", + grid: 6mm, + body: 11pt, + scale-base: 1.2, + rest, +) = { + let scale(l) = body * calc.pow(scale-base, 4 - l) + let gridsize(l) = ( + size: scale(l), + top-edge: calc.ceil(scale(l).mm() / grid.mm()) * grid, + ); + + set page( + paper: paper, + margin: ( + inside: grid * 6, + rest: grid * 4, + ) + ); + + set text( + font: "TeX Gyre Schola", + ..gridsize(4) + ); + set par( + justify: true, + leading: 0pt, + spacing: 0pt, + first-line-indent: grid, + ); + set block( + above: grid, + below: 0pt, + ); + set heading( + numbering: "1.1", + ); + + show heading: it => block( + above: grid, + below: 0pt, + text( + baseline: grid / -4, + ..gridsize(it.level), + )[ + #counter(heading).display() + #sym.dot + #it.body + ] + ); + + rest +} + +#show: rest => raster(paper: "us-letter", rest) + +Ok so here is some sample text where I once again do not know what to write. +I have been really hung over today which sucks. +I didn't even think I went that hard, but I guess a margharita and smoking past 10 PM will do it. +How unfortunate. + += bleh + +#lorem(100) + +== bleh + +#lorem(30) + +#lorem(50) + +=== bleh + +#lorem(100) + +==== bleh + +#lorem(100) + += bleh + +#lorem(100) + +== bleh + +#lorem(100) |
