Skip to content

I2747 — Every code block on every surface is highlighted by one engine with one palette

Highlight every code block majordomus ui and the executable's reports render with syntect, the engine Zola already uses for the site, emitting the same class vocabulary; generate one stylesheet for both themes from the design tokens and use it on the site, the UI and the handbook; remove highlight.js and any CDN highlighter; add a gate that refuses a second highlighter.

READY wave 0 · p1 · implementation profile · parallel safe

Part of truthful-plan-surfaces — The plan's surfaces are inferred from delivery, and nothing they show is typed beside the repository.

Ready. Every dependency is done, so majordomus plan start I2747 will be accepted.

Objective

Highlight every code block majordomus ui and the executable's reports render with syntect, the engine Zola already uses for the site, emitting the same class vocabulary; generate one stylesheet for both themes from the design tokens and use it on the site, the UI and the handbook; remove highlight.js and any CDN highlighter; add a gate that refuses a second highlighter.

Why

ADR 0166 decision 7. Code is highlighted by syntect (site), highlight.js 11.9 fetched from a CDN (share/ui/ui.js) and the handbook's own scripts, with three palettes.

Current state

site/config.toml highlights with ayu-light and ayu-dark classes; share/ui/ui.js loads highlight.js from cdnjs; the handbook has its own.

Desired state

One engine, one class vocabulary, one generated palette; scripts/ci/highlighter-check refuses hljs, highlight.js, prism or shiki on any surface.

Scope

  • apps/majordomus-cli/Cargo.toml
  • Cargo.lock
  • apps/majordomus-cli/src/ui
  • apps/majordomus-cli/src/web
  • share/ui/ui.js
  • share/ui/ui.css
  • share/design
  • site/config.toml
  • scripts/site-build
  • handbook
  • scripts/ci/highlighter-check
  • .ai/repo/automation/inventory.jsonl
  • test/cases/3107_one_highlighter.sh

Dependencies

None. This issue is a root of the graph.

Acceptance criteria

  • A code block rendered by majordomus ui carries the same classes as the same block on the site
  • No surface loads highlight.js or a CDN highlighter, and the gate refuses one planted
  • The executable's build time and size change are measured and stated in the pull request

Validation

  • scripts/ci/highlighter-check
  • bash test/run.sh 3107_one_highlighter

Evidence required

  • one_highlighter_case

Evidence

None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.

Timeline

started
—
verified
—
completed
—

Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.

Canonical record: .ai/repo/project/issues/I2747.yaml. Read it back with majordomus plan show I2747.

Searches the titles and descriptions of every page this site publishes.