Skip to content

v0.6.9

@Hosuke Hosuke tagged this 18 Apr 10:42
Frontend-only release driven by 斯文·太虛間 (fo.siwen.ink): a llmwiki
0.6.4 fork building a reading library for 太虛大師全書 (~7M chars,
判教 tables, 8-layer 甲乙丙丁戊己庚辛 nesting).

Mermaid:
- New Mermaid.tsx component, lazy-imports `mermaid` only when a diagram
  appears (no first-paint cost on plain pages); securityLevel:'strict'
  so labels are escaped. Re-renders on theme toggle to pick up the
  dark/light palette.
- Markdown.tsx catches the fence at the <pre> layer, not <code>, so
  the diagram doesn't end up wrapped as <pre><div class="mermaid"/></pre>.
- Failures fall back to a labeled error block that renders the source
  as escaped text in <pre><code>; the cached dynamic-import promise is
  cleared on failure so a transient chunk-load error can recover on
  next mount instead of locking every diagram into the loading state.
- Surface CSS: neutral container matching code blocks, max-width svg.

Deep-nest CSS in .prose-article:
- <ul> rotates list-style across 8 depths: disc → circle → square →
  ▸ → ⋄ → ▫ → ◆ → ◇.
- <ol> rotates: decimal → lower-alpha → lower-roman → upper-alpha →
  upper-roman → cjk-ideographic → hiragana → katakana.
- 1px outline-variant rail on the left from depth 2 onward, fading at
  depth 3+. Targeted at 古籍解經 content nested past Markdown's 6 head
  levels where bare nested lists collapse into a wall.

CI: tsc clean, vite build clean (mermaid is its own ~25 chunks, lazy),
python imports OK, 128 tests pass. Codex LGTM on second pass after
fixing 4 first-pass issues (rest-spread on <code>, <pre> wrapping,
unhandled dynamic-import rejection, stale SVG between renders).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Assets 2
Loading