github akitaonrails/FrankMD v1.9.0

5 hours ago

v1.9.0

Released: 2026-10-10

Feature release: expanded preview syntax highlighting (#231/#228), emoji-picker hover performance (#232/#229), and a Typewriter-mode autocomplete fix (#233/#230).

Features

  • Broader fenced-code highlighting (#231, closes #228): the Markdown preview now highlights C/C++/Java/C#/Kotlin (clike), Go, PHP, Python, Rust, YAML, Ruby, shell, SQL (several dialects), TOML, Dockerfile, and Terraform HCL — on top of the existing JS/TS/HTML/CSS/JSON set. Common parsers highlight immediately; less common ones load on demand (cached, importmap-resolved) with bounded work per render (block count and total size limits) and stale-result skipping when a newer render replaces the preview. Highlighting now runs as a single in-place pass after the sanitized render. A small hand-rolled HCL stream parser is included (linear-time tokenization, no backtracking).
  • Vendored parser runtimes updated: @lezer/highlight 1.2.5, @lezer/common 1.5.3, @lezer/lr 1.4.11.

Fixed

  • Emoji picker hover lag (#232, closes #229): hovering updates the selection in place (class toggle) instead of rebuilding the grid, with a unified subtle selected background + accent ring across Emoji, Emoticons, and Icons tabs; emoticon text color is preserved.
  • Slash suggestions in Typewriter mode (#233, closes #230): document updates no longer dispatch a redundant selection transaction that interrupted autocomplete; cursor centering stays with the CodeMirror Typewriter extension and preview sync remains tied to selection changes.

Test Coverage

  • 936 Ruby tests (3,367 assertions, stable across seeds), 2,075 JavaScript tests (87 files); full bin/ci and hosted CI green on all merge SHAs of this release.

Don't miss a new FrankMD release

NewReleases is sending notifications on new releases.