@unifast/highlight
Plugin de resaltado de sintaxis para unifast basado en highlight.js mediante transformaciones HAST
Visión general
@unifast/highlight proporciona resaltado de sintaxis impulsado por lowlight (un wrapper de highlight.js). A diferencia de los plugins integrados syntect() y treeSitter(), que ejecutan el resaltado en Rust, este paquete aplica el resaltado como una transformación HAST en JavaScript después de la compilación, lo que te da acceso al extenso ecosistema de lenguajes y temas de highlight.js.
Instalación
Inicio rápido
import { compile } from "@unifast/node";
import { highlight } from "@unifast/highlight";
const md = `
\`\`\`javascript
const x = 42;
console.log(x);
\`\`\`
`;
const result = compile(md, {
plugins: [highlight()],
});
console.log(result.output);
// Code blocks are highlighted with highlight.js CSS classesCómo funciona
El compilador en Rust produce una salida HAST con bloques
<pre><code>sin resaltarEl
hastTransformdel pluginhighlight()recorre el árbol HASTPara cada elemento
<code>con una claselanguage-*, lowlight resalta el códigoLos nodos HAST resaltados reemplazan a los hijos originales
Dado que esto se ejecuta como una transformación HAST, el resaltado nativo de Rust (syntect / treeSitter) debe estar desactivado. El plugin establece automáticamente highlight.enabled: false en las opciones de compilación.
Resumen de exports
| Export | Tipo | Descripción |
|---|---|---|
highlight | function | Crea un plugin de transformación HAST con highlight.js |