From dcfe53aebf54509f78c61551a074f76788752d42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martynas=20Jusevi=C4=8Dius?= Date: Sun, 20 Sep 2026 19:19:35 +0200 Subject: [PATCH] The demo page reads the string catalog from beside the SEF, where the build already puts it. index.html fetched src/translations.rdf and pooled it under dist/translations.rdf, the URI the SEF resolves against. The Pages workflow ships lib, dist and vocabs and never src, so the fetch 404ed on atomgraph.github.io, the Promise.all that gates SaxonJS.transform rejected, and the published editor came up with no toolbar and no handlers - while the same page worked locally, where src/ sits beside it. generate-sef.sh copies the catalog into dist/ on every build, and the page cannot run without dist/index.xsl.sef.json from that same build, so dist/translations.rdf is present wherever the page is. Fetching it from there makes the fetch URI and the pool key the same string and leaves the workflow as it is. The test fixtures keep reading ../src/: they are never deployed. Co-Authored-By: Claude Fable 5.1 --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index e902548..871750e 100644 --- a/index.html +++ b/index.html @@ -12,7 +12,7 @@ // preload the vocabulary documents and the string catalog into the SaxonJS // document pool, so doc() resolves them synchronously during initialization const vocabs = ["vocabs/foaf.rdf", "vocabs/dcterms.rdf"]; - Promise.all([SaxonJS.getResource({ location: "src/translations.rdf", type: "xml" }), ...vocabs.map(href => + Promise.all([SaxonJS.getResource({ location: "dist/translations.rdf", type: "xml" }), ...vocabs.map(href => SaxonJS.getResource({ location: href, type: "xml" }))]) .then(([catalog, ...resources]) => { const pool = {};