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 `` — 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