#1494·opentui

markdown: fenced code blocks render blank when no syntax highlighter is available

Author: RayhanHaqiCreated Sep 11, 2026Updated Sep 11, 2026

Summary

MarkdownRenderable (@opentui/core 0.5.11) does not show fenced code block content when no tree-sitter/highlighter client is available. In our setup it also renders no text at all with streaming={false}.

Environment

  • @opentui/core 0.5.11, @opentui/solid 0.5.11
  • Bun 1.4.0, Linux
  • Observed from an OpenCode TUI plugin panel (opencode2 v0.0.0-beta-19425), but the behavior is in the renderable itself

Steps to reproduce

  1. Render <markdown content={"hello\n\n```\nconst x = 1\n```"} streaming={true} /> without configuring a tree-sitter parser/highlighter.
  2. Render the same content with streaming={false}.

Actual

  • streaming={true}: prose renders, but the fenced code block area is blank (async highlight never completes).
  • streaming={false}: the markdown content renders no text.

Expected

Without a highlighter, fenced code should fall back to plain (un-highlighted) text instead of rendering blank, and streaming={false} should render content synchronously.

Workaround

Split fenced segments manually and render them with <code>; keep prose in <markdown streaming>.

Notes

Related: #1464 (tokenizer hooks), #1434 (parser set), #1201 (web-tree-sitter wasm rename). Happy to provide a minimal standalone repro if useful.