ZDDC/shared
ZDDC 1d816ae43a feat(server): multi-template MD→HTML with .zddc.d/templates cascade
The convert engine renders markdown→HTML/PDF through named doctype templates
selected by the document's `template:` front matter, with per-project/per-party
overrides.

convert package:
- embed.go now embeds the whole templates/ dir (all: prefix so _-prefixed
  partials are included) as an embed.FS; drop the single viewer-template.html +
  custom.css embeds. New TemplateSet type + DefaultTemplateSet(name) returning the
  chosen doctype + its partials.
- ToHTML/ToPDF take a TemplateSet; writeTemplateSetToScratch materialises the
  template + partials flat into the per-call scratch dir (pandoc resolves
  $partial()$ from the template's own directory).

handler:
- converttemplate.go: templateNameFromFrontMatter (YAML front-matter scan,
  sanitized to a bare basename) + resolveTemplateSet, which overlays
  <level>/.zddc.d/templates/<name>.html overrides onto the embedded defaults,
  walking docDir→fsRoot so a party dir beats the project-global dir. An override
  may replace a doctype, a partial, or add a brand-new doctype.
- buildAndStore threads fsRoot + source into the html/pdf paths.

build: pandoc/templates/ is the single source of truth; shared/build-lib.sh
sync_pandoc_templates mirrors it into the embed dir on every build (cmp-guarded,
stale-pruning). convert.TestEmbeddedTemplatesMatchSource fails on drift.

Tests: drift + DefaultTemplateSet (convert); front-matter parse + cascade
override precedence (handler). Full ./... suite green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 14:18:40 -05:00
..
fonts feat(typography): bake IBM Plex Sans + Source Serif 4 into every tool 2026-05-10 20:09:59 -05:00
vendor feat(browse): SPA overhaul — context menu, YAML editor, icons, hovercard, deep links, autofilter 2026-05-14 12:12:42 -05:00
base.css feat(browse): SPA overhaul — context menu, YAML editor, icons, hovercard, deep links, autofilter 2026-05-14 12:12:42 -05:00
build-lib.sh feat(server): multi-template MD→HTML with .zddc.d/templates cascade 2026-06-04 14:18:40 -05:00
cap.js feat(form): pre-flight Submit gate + cap-toast on 403 2026-05-21 08:50:49 -05:00
context-menu.css feat(browse): SPA overhaul — context menu, YAML editor, icons, hovercard, deep links, autofilter 2026-05-14 12:12:42 -05:00
context-menu.js feat(browse): verb-aware gating on rename/delete + editor save 2026-05-21 08:45:11 -05:00
diff.js feat(browse): markdown version-history viewer with diff + restore 2026-05-28 12:49:00 -05:00
elevation.css ui: fix admin-mode frame; drop project-stage strip 2026-05-18 16:39:35 -05:00
elevation.js feat(elevation): toggle admin mode via ?admin=true|false URL param 2026-06-02 08:31:40 -05:00
favicon.svg feat(tools,build): in-flight HTML-tool reworks and build-infra updates 2026-04-29 12:52:27 -05:00
fonts.css feat(typography): bake IBM Plex Sans + Source Serif 4 into every tool 2026-05-10 20:09:59 -05:00
hash.js Initial commit 2026-04-27 11:05:47 -05:00
help.js Initial commit 2026-04-27 11:05:47 -05:00
icons.js feat(browse): capability/role/tier-driven, context-correct menu system 2026-06-04 07:21:02 -05:00
logo.css feat(shared): clickable logo links every tool's header to project home 2026-05-10 07:34:28 -05:00
logo.js feat(shared): clickable logo links every tool's header to project home 2026-05-10 07:34:28 -05:00
preview-lib.js feat(browse): preview .docx/.xlsx + fix markdown-editor horizontal overflow 2026-06-03 08:55:14 -05:00
theme.js Initial commit 2026-04-27 11:05:47 -05:00
toast.css feat(shared): cap.js client helpers for permission gating 2026-05-21 08:42:05 -05:00
toast.js feat(shared): route window.alert() to non-blocking toast 2026-05-10 19:30:36 -05:00
zddc-filter-test.html Initial commit 2026-04-27 11:05:47 -05:00
zddc-filter.js Initial commit 2026-04-27 11:05:47 -05:00
zddc-source.js refactor: virtual file extensions for subtree zip + MD conversion 2026-05-14 12:23:37 -05:00
zddc-test.html feat(browse): markdown version-history viewer with diff + restore 2026-05-28 12:49:00 -05:00
zddc.js feat: reviewing/ lifecycle — Plan Review endpoint, virtual received window, browse context-menu workflows 2026-05-15 16:08:04 -05:00
zip-source.js feat(archive,browse): treat .zip transmittal folders as folders + shared zip adapter 2026-05-12 12:29:14 -05:00