Virtual syntax highlighting for virtual DOMs and non-HTML things
Lowlight is a syntax highlighting library that outputs abstract syntax trees instead of serialized HTML, making it suitable for use with virtual DOM frameworks and non-HTML contexts. Built on highlight.js, it supports over 190 programming languages and can be used with React, Preact, and other JSX-compatible frameworks, as well as in CLI applications rendering to ANSI sequences or with AST-based tools like rehype. The package is written in JavaScript (ESM-only, compatible with Node.js 16+, Deno, and browsers) and produces hast (hypertext abstract syntax tree) objects that can be serialized to HTML or converted to framework-specific virtual nodes. Lowlight was created by Titus Wormer.