feat(notes): render macroplan code blocks as a delivery plan grid
All checks were successful
CI / verify (push) Successful in 2m9s

Follows the tikz pattern: the fence emits a base64 placeholder, then
the post-render hook lazily imports the parser and grid (separate
chunks) and mounts the grid only when a placeholder exists. Mono font
forced on the block because the flag-stacking math assumes Fira Code.
This commit is contained in:
Julien Calixte
2026-07-08 00:01:21 +02:00
parent 70f9a6b718
commit 1b6c7542d7
9 changed files with 154 additions and 6 deletions

View File

@@ -236,11 +236,20 @@ pre.tikz svg {
}
}
.tikz-loading {
.tikz-loading,
.macroplan-loading {
opacity: 0.6;
font-style: italic;
}
/* The grid's milestone-flag stacking math assumes a monospace advance
(BAND_CHAR in MacroplanGrid.vue), and the macroplan app renders in
Fira Code — don't let the note's serif leak in. */
.macroplan-block {
font-family: "Fira Code", ui-monospace, SFMono-Regular, Menlo, Consolas,
monospace;
}
.svg-download-host {
position: relative;
display: inline-block;
@@ -282,14 +291,16 @@ pre.tikz svg {
filter: none;
}
.tikz-error {
.tikz-error,
.macroplan-error {
border-left: 3px solid var(--color-error);
padding: 0.5rem 0.75rem;
background: color-mix(in srgb, var(--color-error) 10%, transparent);
text-align: left;
}
.tikz-error pre {
.tikz-error pre,
.macroplan-error pre {
white-space: pre-wrap;
font-size: 0.85em;
}