diff --git a/.gitignore b/.gitignore
index cf6af24..820f9d9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,15 +1,30 @@
node_modules
-lua_modules
data/*.avif
data/*.pdf
data/*.toml
-data/*.aux
-data/*/*-aux
-data/*.log
-data/*-aux.json
-data/decasify.js
.fonts
static
public
+
+# SILE
+lua_modules
*.rockslock
+
+# PagedJS
+data/decasify.js
+
+# LaTeX
+data/*.aux
+data/*/*-aux
+data/*.log
+
+# Glu
+data/*-aux.json
all-system-fonts.css
+
+# Speedata
+data/*-aux.xml
+data/*-protocol.xml
+data/*.finished
+data/*.status
+data/*.vars
diff --git a/Makefile b/Makefile
index 9b6f1de..b593315 100644
--- a/Makefile
+++ b/Makefile
@@ -27,6 +27,7 @@ QUARKDOWN ?= quarkdown
SATYSFI ?= satysfi
SED ?= sed
SILE ?= sile
+SPEEDATA ?= sp
TERA ?= tera
TOMLQ ?= tomlq
TYPST ?= typst
@@ -45,6 +46,7 @@ PAGEDJS_ARGS = -i $< -o $@
QUARKDOWN_ARGS = c --pdf --out $(@D) $<
SATYSFI_ARGS = $< -o $@
SILE_ARGS = -o $@ $<
+SPEEDATA_ARGS = --dummy --layout $< --jobname $*-speedata
TYPST_ARGS = compile $< $@
WEASYPRINT_ARGS = $< $@
XELATEX_ARGS = -interaction=batchmode -halt-on-error
@@ -169,6 +171,9 @@ data/title-case-pagedjs.pdf: data/decasify.js
%-sile.pdf %-sile.toml: %/sile.xml | installrocks
$(call make_manifest,$(SILE) $(TYPESETTER_ARGS) $(SILE_ARGS))
+%-speedata.pdf %-speedata.toml: %/speedata.xml
+ $(call make_manifest,$(SPEEDATA) $(TYPESETTER_ARGS) $(SPEEDATA_ARGS))
+
%-typst.pdf %-typst.toml: %/typst.typ
$(call make_manifest,$(TYPST) $(TYPESETTER_ARGS) $(TYPST_ARGS))
diff --git a/content/hello-world.md b/content/hello-world.md
index 07869c4..63ceecb 100644
--- a/content/hello-world.md
+++ b/content/hello-world.md
@@ -2,7 +2,7 @@
title = "Hello World!"
description = "Your most basic greeting."
weight = 1
-extra.typesetters = [ "sile", "typst", "lualatex", "groff", "satysfi", "pagedjs", "weasyprint", "glu", "quarkdown" ]
+extra.typesetters = [ "sile", "typst", "lualatex", "groff", "satysfi", "pagedjs", "weasyprint", "glu", "quarkdown", "speedata" ]
+++
Just the simplest way to get a phrase onto a numbered page.
diff --git a/data/hello-world/speedata.xml b/data/hello-world/speedata.xml
new file mode 100644
index 0000000..700d1ef
--- /dev/null
+++ b/data/hello-world/speedata.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Hello World
+
+
+
+
+
diff --git a/flake.lock b/flake.lock
index dee0d08..61a4dc1 100644
--- a/flake.lock
+++ b/flake.lock
@@ -52,6 +52,24 @@
"type": "github"
}
},
+ "flake-utils_3": {
+ "inputs": {
+ "systems": "systems_3"
+ },
+ "locked": {
+ "lastModified": 1731533236,
+ "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "type": "github"
+ }
+ },
"gitignore": {
"inputs": {
"nixpkgs": [
@@ -153,9 +171,31 @@
"gitignore": "gitignore",
"glu": "glu",
"nixpkgs": "nixpkgs",
+ "speedata-publisher": "speedata-publisher",
"teracli": "teracli"
}
},
+ "speedata-publisher": {
+ "inputs": {
+ "flake-utils": "flake-utils_3",
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1787918458,
+ "narHash": "sha256-BMmjjq6gqtt1LccJDubT2jCqWVR0sTE0bA98TaSBHcY=",
+ "owner": "speedata",
+ "repo": "publisher",
+ "rev": "19ead00e64069ed5fc62712f9cd184e51928058c",
+ "type": "github"
+ },
+ "original": {
+ "owner": "speedata",
+ "repo": "publisher",
+ "type": "github"
+ }
+ },
"systems": {
"locked": {
"lastModified": 1681028828,
@@ -186,6 +226,21 @@
"type": "github"
}
},
+ "systems_3": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ },
"teracli": {
"inputs": {
"naersk": "naersk",
diff --git a/flake.nix b/flake.nix
index 9191c01..5357236 100644
--- a/flake.nix
+++ b/flake.nix
@@ -17,6 +17,10 @@
url = "github:boxesandglue/glu";
inputs.nixpkgs.follows = "nixpkgs";
};
+ speedata-publisher = {
+ url = "github:speedata/publisher";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
};
outputs =
@@ -45,6 +49,7 @@
};
inherit (gitignore.lib) gitignoreSource;
glu = inputs.glu.packages.${system}.default;
+ speedata-publisher = inputs.speedata-publisher.packages.${system}.default;
polytype =
rec {
};
@@ -78,6 +83,7 @@
rustc
satysfi
sile
+ speedata-publisher
stix-two
teracli.defaultPackage.${system}
texliveFull
diff --git a/src/codemirror.js b/src/codemirror.js
index 64bff60..b3f6927 100644
--- a/src/codemirror.js
+++ b/src/codemirror.js
@@ -32,6 +32,7 @@ const languageMap = {
// Aliases to near-matches
pagedjs: html,
sile: latex,
+ speedata: xml,
weasyprint: html,
xelatex: latex,
};
diff --git a/templates/page.html b/templates/page.html
index 276d198..b730212 100644
--- a/templates/page.html
+++ b/templates/page.html
@@ -23,7 +23,7 @@
{{ typesetter }}
Input document
- {% set source = load_data(path=manifest.src) | safe %}
+ {% set source = load_data(path=manifest.src, format="plain") %}
{% set ext = manifest.src | split(pat=".") | last %}
{{ source }}