Skip to content

0.7.0

Choose a tag to compare

@peaceroad peaceroad released this 15 Feb 06:08
· 20 commits to main since this release
  • Breaking: ruby wrapper shorthand now requires a paired wrapper in both renderer and analyzer.

    • Wrapper form is treated as shorthand only when both tags are present: <ruby>base《reading》</ruby>.
    • Unclosed wrapper input (for example <RUBY>漢字《かんじ》) is no longer treated as wrapped shorthand.
    • Bare shorthand (漢字《かんじ》) behavior is unchanged.
    • I thought I was fixing it, but it seems it was broken.
  • Breaking: wrapper tag handling is now case-insensitive and consistent.

    • Closed uppercase wrappers such as <RUBY>...</RUBY> now follow the same paired-wrapper semantics as lowercase tags.
    • Legacy ambiguous optional-wrapper interpretation was removed.
  • Added/Expanded (analyzer): editor-side APIs were expanded and aligned with plugin runtime behavior.

    • Added/solidified helpers: normalizeLineWindow, expandToParagraphBoundaries, shouldFullAnalyze, analyzeLineWindow.
    • Added analyzer parity regression tests for wrapped/unwrapped ruby and edge cases.
  • Changed: analyzer packaging/layout was cleaned up (public subpath unchanged).

    • Public import path remains: @peaceroad/markdown-it-renderer-inline-text/analyzer.
    • Export target now points to ./src/analyzer.js (internal file layout change).
  • Performance: analyzer hot paths were optimized without API changes.

    • Reduced temporary allocations in ruby scanning.
    • Added ruby-only fast path in inline scanning.
    • Reduced repeated trim() work in paragraph propagation by precomputing blank-line flags.
    • Removed redundant helpers and default-arg allocations in hot code paths.
  • Tests/Maintenance: test suite structure was cleaned up.

    • test/option-assertions.js and test/analyzer-assertions.js were split/extended for option and analyzer regressions.