From dea8b2996be00ddbd77ff12aa13b095462841cf7 Mon Sep 17 00:00:00 2001 From: Christian Findlay <16697547+MelbourneDeveloper@users.noreply.github.com> Date: Fri, 12 Jun 2026 06:58:02 +1000 Subject: [PATCH 1/3] fix(web): ship sitemap.xml to dist and include every docs page in it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - vite-plugin-copy-eleventy: copy Eleventy's .xml outputs (sitemap.xml) into dist — robots.txt advertised /sitemap.xml but the build dropped it (404). - docs.njk: addAllPagesToCollections so all docs pages join collections.all; the sitemap previously listed only the first paginated page (7 URLs -> 156). - blog: avoid '&' in the 0.11 post title (double-escaped in ). --- packages/web/eleventy/blog/datetime-uuid-decimal-scalars.md | 2 +- packages/web/eleventy/docs.njk | 3 +++ packages/web/vite-plugin-copy-eleventy.ts | 6 ++++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/web/eleventy/blog/datetime-uuid-decimal-scalars.md b/packages/web/eleventy/blog/datetime-uuid-decimal-scalars.md index c544c90..9f53986 100644 --- a/packages/web/eleventy/blog/datetime-uuid-decimal-scalars.md +++ b/packages/web/eleventy/blog/datetime-uuid-decimal-scalars.md @@ -1,5 +1,5 @@ --- -title: "typeDiagram 0.11: Native DateTime, Uuid & Decimal — and Codegen That Refuses to Lie" +title: "typeDiagram 0.11: Native DateTime, Uuid and Decimal Scalars — Codegen That Refuses to Lie" date: 2026-06-12 author: "The typeDiagram team" description: "typeDiagram 0.11 adds native DateTime, Uuid, and Decimal scalars that generate real datetime / UUID / decimal types in TypeScript, Python, Rust, Go, C#, F#, Dart, PHP, and Protobuf — plus strict code generation that fails on unknown type names instead of emitting code that won't compile. The fix for schema drift on timestamps and ids." diff --git a/packages/web/eleventy/docs.njk b/packages/web/eleventy/docs.njk index b877201..d9cbeee 100644 --- a/packages/web/eleventy/docs.njk +++ b/packages/web/eleventy/docs.njk @@ -4,6 +4,9 @@ pagination: data: docs size: 1 alias: doc + # Without this, only the FIRST paginated page joins collections.all, so the + # sitemap listed /docs/introduction.html and silently dropped every other doc. + addAllPagesToCollections: true permalink: "/docs/{{ doc.slug }}.html" eleventyComputed: title: "{{ doc.title }} — typeDiagram" diff --git a/packages/web/vite-plugin-copy-eleventy.ts b/packages/web/vite-plugin-copy-eleventy.ts index 7fea673..afd0334 100644 --- a/packages/web/vite-plugin-copy-eleventy.ts +++ b/packages/web/vite-plugin-copy-eleventy.ts @@ -31,6 +31,12 @@ export const copyEleventyPlugin = (eleventyRoot: string): Plugin => ({ const all = await walk(eleventyRoot); for (const abs of all) { const rel = toPosix(relative(eleventyRoot, abs)); + // Non-HTML Eleventy outputs (sitemap.xml) must reach dist too — + // robots.txt advertises /sitemap.xml, so dropping it is a crawl 404. + if (rel.endsWith(".xml")) { + this.emitFile({ type: "asset", fileName: rel, source: await readFile(abs, "utf-8") }); + continue; + } if (!rel.endsWith(".html")) { continue; } From d881b755fde7afe70332de4f840f22b0728833b7 Mon Sep 17 00:00:00 2001 From: Christian Findlay <16697547+MelbourneDeveloper@users.noreply.github.com> Date: Fri, 12 Jun 2026 07:00:44 +1000 Subject: [PATCH 2/3] ci: build typediagram-core before type-aware lint in the web-scope path --- .github/workflows/ci.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b3d5c86..da69a3e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -78,13 +78,15 @@ jobs: # ───────────── Website/docs-only scope (lightweight) ───────────── # Validates that the site compiles and the web package is clean without # paying for the full cross-workspace test/build/gate pipeline. + # typediagram-core MUST build first: type-aware eslint and the web build + # both resolve typediagram-core's dist declarations; on a fresh runner an + # unbuilt core makes every import "a type that could not be resolved". - name: Website checks (format, lint, typecheck, web tests, site build) if: steps.scope.outputs.scope == 'web' run: | - npm run fmt:check - npm run lint npm run -w typediagram-core build - npm run -w @typediagram/web typecheck + make _fmt_check + make lint npm run -w @typediagram/web test:unit npm run -w @typediagram/web build From b9c8e35efe693e3e9d9bab8f3f9e1fc7c3efa6ee Mon Sep 17 00:00:00 2001 From: Christian Findlay <16697547+MelbourneDeveloper@users.noreply.github.com> Date: Fri, 12 Jun 2026 07:01:56 +1000 Subject: [PATCH 3/3] docs: tick off shipped v0.11.0 + website-audit findings in the plan --- docs/plans/marketplace-oidc-and-0.11.0.md | 30 ++++++++++++++++++----- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/docs/plans/marketplace-oidc-and-0.11.0.md b/docs/plans/marketplace-oidc-and-0.11.0.md index b1c6fa9..2c22a2d 100644 --- a/docs/plans/marketplace-oidc-and-0.11.0.md +++ b/docs/plans/marketplace-oidc-and-0.11.0.md @@ -76,12 +76,30 @@ Key facts from the runbooks: ### D. Ship v0.11.0 -- [ ] Commit all of the above on `fixes`; open PR → `main`; CI green; merge. -- [ ] Tag `v0.11.0` from `main` → release workflow stamps 0.11.0, publishes npm + GitHub - Release, and now the OIDC `publish-marketplace` job pushes the VSIX. -- [ ] Monitor both workflows; confirm Marketplace shows **0.11.0** (full release, not - pre-release). -- [ ] Record typeDiagram in the NimblesiteDeployment onboarded-repos table (follow-up). +- [x] Commit all of the above on `fixes`; PR #45 → `main`; CI green; squash-merged + (`d7f3f7e`). +- [x] Tag `v0.11.0` from `main` → release run 27376654355: stamped 0.11.0, published + npm (`typediagram-core@0.11.0`, `typediagram@0.11.0`) + GitHub Release (6 assets), + and the OIDC `publish-marketplace` job pushed the VSIX + (`Published nimblesite.typediagram v0.11.0.`). +- [x] Verified live: Marketplace shows **0.11.0** as a stable (non-prerelease) release. +- [ ] Record typeDiagram in the NimblesiteDeployment onboarded-repos table (follow-up — + that repo is outside this working tree). + +### E. Website audit findings (fixed in follow-up PR #47) + +- [x] `dist/sitemap.xml` was never shipped: the Vite copy plugin only emitted `.html` + files while `robots.txt` advertised `/sitemap.xml` (crawl 404). Plugin now copies + Eleventy's `.xml` outputs. +- [x] Sitemap listed 7 of 156 URLs: Eleventy pagination adds only the first page to + `collections.all` by default, so every docs page except `introduction` was + missing. Fixed with `addAllPagesToCollections: true`. +- [x] Blog post title `&` double-escaped in `<title>` — reworded. +- [x] Playwright smoke (desktop 1280×720 + mobile 375×667): pages load, zero console + errors, no horizontal overflow, viewport meta correct. +- [x] `[CI-SCOPE-FILTER]` validated live: the website-only PR took the WEB path and + skipped the framework matrix/e2e/gates. (First run exposed an ordering bug — + type-aware lint before `typediagram-core` build — fixed by building core first.) ## Guard rails