From 364f44f4bfdc5c09926a82aaa5de5e7ff550cf69 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 5 Aug 2026 15:11:48 +0000 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=93=84=20chore:=20serve=20the=20docs?= =?UTF-8?q?=20folder=20verbatim=20on=20GitHub=20Pages?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pages runs Jekyll by default. Jekyll ignores paths beginning with an underscore and carries default `vendor/` exclusions, neither of which suits a hand-built page — and the failure mode is an asset that silently does not publish, which for this page means the playground's compiler 404s and the Run button dies exactly the way the old CDN-based one did. `.nojekyll` opts out, so what is in docs/ is what gets served. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01SAcqrz3FcadkYr3xG32CjK --- docs/.nojekyll | 0 docs/vendor/README.md | 5 +++++ 2 files changed, 5 insertions(+) create mode 100644 docs/.nojekyll diff --git a/docs/.nojekyll b/docs/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/docs/vendor/README.md b/docs/vendor/README.md index 4a8d682..f5e9e67 100644 --- a/docs/vendor/README.md +++ b/docs/vendor/README.md @@ -3,3 +3,8 @@ Generated by `npm run build:docs`. Do not edit by hand. - `babel.min.js` — @babel/standalone 8.0.4, used by the playground to compile TypeScript with standard decorators in the browser. Vendored rather than loaded from a CDN: the previous page referenced an unpinned unpkg URL, which silently began serving Babel 8 and broke the playground. + +`../.nojekyll` sits alongside these files so GitHub Pages serves the directory verbatim +instead of running it through Jekyll. Jekyll's conventions — ignoring paths that begin with +an underscore, and its default `vendor/` exclusions — are a poor fit for a hand-built page +whose playground 404s the moment one asset silently fails to publish. From e626a1003a2ad2a7ae6895ad99ddc241b5524087 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 5 Aug 2026 15:14:20 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=94=A7=20fix:=20generate=20.nojekyll?= =?UTF-8?q?=20instead=20of=20hand-editing=20generated=20files?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The previous commit appended the .nojekyll rationale to docs/vendor/README.md — a file whose own first line reads "Generated by npm run build:docs. Do not edit by hand." CI's "Landing page bundle is in sync with src/" step regenerated it, the text vanished, git diff was non-empty and all three Node jobs failed. The guard did its job; I was the one who put a hand-written paragraph in a generated file. The note now lives in the generator, and build:docs writes docs/.nojekyll itself so it is part of the generated set rather than a loose file that a docs/ rewrite could drop. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01SAcqrz3FcadkYr3xG32CjK --- docs/vendor/README.md | 5 +---- scripts/build-docs.mjs | 9 ++++++++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/docs/vendor/README.md b/docs/vendor/README.md index f5e9e67..b0d0a2c 100644 --- a/docs/vendor/README.md +++ b/docs/vendor/README.md @@ -4,7 +4,4 @@ Generated by `npm run build:docs`. Do not edit by hand. - `babel.min.js` — @babel/standalone 8.0.4, used by the playground to compile TypeScript with standard decorators in the browser. Vendored rather than loaded from a CDN: the previous page referenced an unpinned unpkg URL, which silently began serving Babel 8 and broke the playground. -`../.nojekyll` sits alongside these files so GitHub Pages serves the directory verbatim -instead of running it through Jekyll. Jekyll's conventions — ignoring paths that begin with -an underscore, and its default `vendor/` exclusions — are a poor fit for a hand-built page -whose playground 404s the moment one asset silently fails to publish. +- `../.nojekyll` — opts the directory out of Jekyll, so GitHub Pages serves it verbatim. Jekyll ignores paths beginning with an underscore and carries default `vendor/` exclusions, and the failure mode is an asset that silently does not publish — for this page, the playground's compiler 404ing while everything else looks fine. diff --git a/scripts/build-docs.mjs b/scripts/build-docs.mjs index 6a80e8e..0e75ebd 100644 --- a/scripts/build-docs.mjs +++ b/scripts/build-docs.mjs @@ -73,9 +73,16 @@ await writeFile( `- \`babel.min.js\` — @babel/standalone ${JSON.parse(await readFile(path.join(root, 'node_modules/@babel/standalone/package.json'), 'utf8')).version}, ` + `used by the playground to compile TypeScript with standard decorators in the browser. ` + `Vendored rather than loaded from a CDN: the previous page referenced an unpinned unpkg URL, ` + - `which silently began serving Babel 8 and broke the playground.\n` + `which silently began serving Babel 8 and broke the playground.\n\n` + + `- \`../.nojekyll\` — opts the directory out of Jekyll, so GitHub Pages serves it verbatim. ` + + `Jekyll ignores paths beginning with an underscore and carries default \`vendor/\` exclusions, ` + + `and the failure mode is an asset that silently does not publish — for this page, the ` + + `playground's compiler 404ing while everything else looks fine.\n` ); +// 5. Written rather than committed by hand so it cannot be lost in a docs/ rewrite. +await writeFile(path.join(docs, '.nojekyll'), ''); + console.log(`docs/cereale.js ${await size(path.join(docs, 'cereale.js'))}`); console.log(`docs/meta.js ${await size(path.join(docs, 'meta.js'))} (v${pkg.version})`); console.log(`docs/vendor/babel.min.js ${await size(path.join(vendor, 'babel.min.js'))}`);