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
- Render
<markdown content={"hello\n\n```\nconst x = 1\n```"} streaming={true} />without configuring a tree-sitter parser/highlighter. - 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.
Source: anomalyco/opentui