From ce2d95e89f5f60d4eed30a750493156752bf5743 Mon Sep 17 00:00:00 2001 From: Mattt Zmuda Date: Thu, 14 May 2026 06:03:34 -0700 Subject: [PATCH 1/7] Drop unused `
` markdown cleanup from `toPlainMarkdown` --- src/content.config.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/content.config.ts b/src/content.config.ts index 806681f..778606f 100644 --- a/src/content.config.ts +++ b/src/content.config.ts @@ -22,9 +22,6 @@ function sha256Digest(source: string): string { function toPlainMarkdown(body: string): string { return body .replace(/^
\n([\s\S]*?)\n<\/pre>$/gm, '```\n$1\n```')
-		.replace(/^<\/?dl>\s*$/gm, '')
-		.replace(/^
(.*?)<\/dt>\s*$/gm, '### $1') - .replace(/^<\/?dd>\s*$/gm, '') .replace(/\n{3,}/g, '\n\n'); } From b4695735e025b99dfd8f90b85b1cedef39a8198a Mon Sep 17 00:00:00 2001 From: Mattt Zmuda Date: Thu, 14 May 2026 06:04:43 -0700 Subject: [PATCH 2/7] Style FAQ table with row dividers, smaller text, and tonal mark indicators --- src/styles/global.css | 62 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/src/styles/global.css b/src/styles/global.css index 6f5e203..5bacb86 100644 --- a/src/styles/global.css +++ b/src/styles/global.css @@ -335,6 +335,68 @@ background-color: var(--color-rule); } + /* Tables */ + + table { + width: 100%; + border-collapse: collapse; + font-size: 0.9em; + font-feature-settings: "kern", "lnum", "tnum"; + } + + caption { + margin-block-end: var(--space-s); + color: var(--color-heading); + font-family: var(--font-sans); + font-weight: 700; + text-align: start; + } + + th, + td { + padding: 0.5em 0.75em; + text-align: start; + vertical-align: baseline; + overflow-wrap: break-word; + } + + th:first-child, + td:first-child { + padding-inline-start: 0; + } + + th:last-child, + td:last-child { + padding-inline-end: 0; + text-align: end; + } + + th { + color: var(--color-heading); + font-family: var(--font-sans); + font-weight: 700; + } + + thead { + border-block-end: var(--rule) solid var(--color-rule); + } + + tbody tr+tr { + border-block-start: 1px solid var(--color-rule); + } + + tbody tr>td:first-child { + font-weight: 700; + } + + mark[data-supported="true"] { + color: var(--color-heading); + } + + mark[data-supported="false"] { + color: var(--color-rule); + } + /* Separator */ hr { From 34580815406effbf785bc5d2f2bd899091cec6b5 Mon Sep 17 00:00:00 2001 From: Mattt Zmuda Date: Thu, 14 May 2026 06:05:00 -0700 Subject: [PATCH 3/7] Inject accessible support indicators in spec FAQ table --- src/content.config.ts | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/content.config.ts b/src/content.config.ts index 778606f..bc0d738 100644 --- a/src/content.config.ts +++ b/src/content.config.ts @@ -25,6 +25,21 @@ function toPlainMarkdown(body: string): string { .replace(/\n{3,}/g, '\n\n'); } +// Inject inline HTML into the spec source before rendering so that the FAQ +// comparison table shows accessible support indicators in HTML, while the +// plain Markdown body keeps its prose for curl/llms.txt consumers. +function preprocessForRendering(source: string): string { + return source + .replace( + /\| Supported \|/g, + '| |', + ) + .replace( + /\| Not supported \|/g, + '| |', + ); +} + const specification = defineCollection({ loader: { name: 'sembr-specification', @@ -43,7 +58,7 @@ const specification = defineCollection({ const id = 'sembr'; const data = await parseData({ id, data: {} }); const digest = generateDigest(source); - const rendered = await renderMarkdown(source); + const rendered = await renderMarkdown(preprocessForRendering(source)); const body = toPlainMarkdown(source); store.set({ id, data, body, digest, rendered }); From f3ef18896ea00ca5a2d06a8943f3d5e8697d2806 Mon Sep 17 00:00:00 2001 From: Mattt Zmuda Date: Thu, 14 May 2026 06:05:16 -0700 Subject: [PATCH 4/7] Reduce footnotes font size --- src/styles/global.css | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/styles/global.css b/src/styles/global.css index 5bacb86..f18a152 100644 --- a/src/styles/global.css +++ b/src/styles/global.css @@ -397,6 +397,12 @@ color: var(--color-rule); } + /* Footnotes */ + + .footnotes { + font-size: 0.85em; + } + /* Separator */ hr { From 8dfa47991ec61c17ac8f42b5d5280fe75156a210 Mon Sep 17 00:00:00 2001 From: Mattt Zmuda Date: Mon, 1 Jun 2026 04:16:22 -0700 Subject: [PATCH 5/7] Hide pre scrollbar when content fits --- src/styles/global.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/styles/global.css b/src/styles/global.css index f18a152..178d559 100644 --- a/src/styles/global.css +++ b/src/styles/global.css @@ -311,7 +311,7 @@ pre { display: block; - overflow-x: scroll; + overflow-x: auto; width: 100%; padding: var(--space-s); font-size: calc((min(100vw, 900px) - 5rem) / 50); From 8f0ef701f343c14a047a288dd5479f2a6ba20030 Mon Sep 17 00:00:00 2001 From: Mattt Zmuda Date: Mon, 1 Jun 2026 04:16:57 -0700 Subject: [PATCH 6/7] Match horizontal scrollbar height to vertical --- src/styles/global.css | 1 + 1 file changed, 1 insertion(+) diff --git a/src/styles/global.css b/src/styles/global.css index 178d559..c95a399 100644 --- a/src/styles/global.css +++ b/src/styles/global.css @@ -328,6 +328,7 @@ ::-webkit-scrollbar { -webkit-appearance: none; width: 3px; + height: 3px; } ::-webkit-scrollbar-thumb { From 447b87fa479c61feb373beb1379c0744e3df7d04 Mon Sep 17 00:00:00 2001 From: Mattt Zmuda Date: Mon, 1 Jun 2026 04:20:27 -0700 Subject: [PATCH 7/7] Prevent inline code from breaking mid-token --- src/styles/global.css | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/styles/global.css b/src/styles/global.css index c95a399..ac6e008 100644 --- a/src/styles/global.css +++ b/src/styles/global.css @@ -307,6 +307,7 @@ code { font-size: 0.9em; line-height: var(--space-s); + white-space: nowrap; } pre { @@ -318,6 +319,7 @@ & code { font-size: inherit; + white-space: inherit; } &.sembr {