summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxwell Beck <max@rastertail.net>2026-07-13 08:22:05 -0500
committerMaxwell Beck <max@rastertail.net>2026-07-13 08:22:05 -0500
commit1363e204b50d7901ba23b35f87aaae63c8c4deec (patch)
tree08f89cda0a2eb1a94874a73f26b84f061b8ff695
init
-rw-r--r--flake.lock24
-rw-r--r--flake.nix25
-rw-r--r--raster.typ87
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)