Project: Build Pipeline for TEI Lex-0 Guidelines.
- Install deps:
npm ci - Build docs + schema:
XMLCALABASH_CMD=xmlcalabash npm run build - Open output:
build/html/index.html
- Node.js (asset build scripts)
- XML Calabash (XProc 3.0)
- Detection order used by
scripts/run-xproc.mjs:XMLCALABASH_CMD(shell command string)xmlcalabashonPATHcalabashonPATHXMLCALABASH_JARorCALABASH_JAR(full path to jar)
- Detection order used by
- ODD source:
odd/lex-0.odd - ODD includes/examples:
odd/includes/,odd/examples/ - XProc pipeline:
xproc/lex-0.xpl - XSLT stylesheets:
xslt/ - Generated output (gitignored):
build/- HTML docs:
build/html/ - Schemas:
build/html/schema/
- HTML docs:
npm run assets:oddgenerate schema + HTML via XProcnpm run assets:minifyminify CSS/JS intobuild/html/css/andbuild/html/js/npm run assets:imagescopy images intobuild/html/images/npm run buildfull local build (odd + minify + images)npm run links:checkinternal link hygiene forbuild/htmlnpm run postprocess:html -- --mode=devpostprocess HTML for dev
Run in separate terminals when iterating:
npm run assets:watchwatchesassets/,odd/,xslt/npm run postprocess:watchwatchesscripts/postprocess-html.mjs
- If you change ODD/XSLT, re-run
assets:oddorbuild. - If you change assets (CSS/JS/images), re-run
assets:minifyorassets:images. - Outputs are static files under
build/html/and are not committed.
- Branch from
dev, always targetdevin PRs; rebase-only merges to keepdevlinear. - Release to prod by fast-forwarding
maintodevvia CLI (git merge --ff-only origin/dev). - Publish releases from annotated tags on
main(vX.Y.Z); tag publish generatesgh-pages/releases/vX.Y.Z/. - Never rebase
devormain; only rebase feature branches and force-push with--force-with-lease.
lex-0.orgservesmain(Vercel project onvercel-main).dev.lex-0.orgservesdev(Vercel project onvercel-dev).lex-0.org/releases/vX.Y.Z/serves GitHub Pages releases via Vercel rewrite.- Release builds are immutable and require annotated tags; if a tag exists, publish fails.
- HTML output must use relative links (no absolute
/orgithub.io) or releases will break.