• feat(web): markdown RP semantic coloring + paragraph reflow (v0.20.6)

    vh released this 2026-07-07 01:03:45 -07:00

    Markdown rework, pass 1 (operator-directed):

    • "quoted" dialogue → speech (bright --md-speech), asterisk → action/narration
      (muted-italic --md-action). Two tunable CSS vars that cascade through --fg-* so
      they auto-adapt to the light theme; plain text stays default narration.
    • speech-wrap runs BEFORE the em/link passes so a generated class="…"/href="…"
      quote can't be mis-read as dialogue; straight + smart quotes; apostrophes are
      safe; unbalanced/half-streamed quotes stay uncolored until they close.
    • fix the ugliest existing bug: single newlines were hard
      s → now CommonMark
      soft-breaks (space); a hard break needs 2+ trailing spaces or a trailing .
    • INV-004 escape-first preserved.

    Verified: pytest tests/test_web_* (84) + a 10-case Playwright unit-check of
    markdownSafe (speech / action / attribute-quote trap / apostrophes / mixed /
    reflow / hard-break / html-escaping / unbalanced / paragraphs) + a visual render.

    Downloads