28
Block Renderers
Confluence XHTML
238 +42
Test Assertions
confluence.test.ts
95% -5%
Ink Alignment
vs HTML5 parity

What to verify: Values in semibold (not bold), 2px bottom borders (not 4px), trend lozenges (green for negative, red for positive).

YAML Spec Parse Plan Confluence Engine XHTML

What to verify: Ghost-outline pills (transparent background, 1px colored border), muted arrow connectors between steps.

Block Renderers
CORE

28 individual renderers in src/blocks/confluence/. Each translates a block type to Confluence XHTML storage format.

Ink Palette
NEW

ctx.ink computed once per render via inkPalette(themeTokens). Provides surface, chrome, text, accent, and stripe colors.

Two-Pass Deploy
DEPLOY

Pass 1 builds page hierarchy (BFS). Pass 2 pushes content incrementally. Persistent ID cache eliminates title lookups.

What to verify: 2px left accent border (not 3px L-shape), neutral grey badge lozenges (not cycling colors), hairline footer separator.

Ink alignment changes — April 2026
BlockChangeBeforeAfter
HeroPanel treatmentcoloredPanel (dark fill)Transparent + accent border
StatBorder weight4px bold2px semibold
CardsBorder shape3px L-shape2px left-only
TableRow treatmentTransparent (no stripe)Alternating stripe + hairline
CalloutTitle weightbold (700)semibold (600)
Flow ChainAlready alignedGhost outlineGhost outline ✓

What to verify: Alternating row striping on even rows, 1px hairline separators between rows, neutral chrome header border (not accent color), tracked uppercase column headers.

If this page renders correctly on Confluence, the ink alignment is validated. The renderer now uses ctx.ink palette throughout — transparent backgrounds, ghost outlines, hairline rules, and semibold weights match the ink theme's design philosophy.