@unifast/highlight
Plugin di evidenziazione della sintassi basato su highlight.js per unifast tramite trasformazioni HAST
Panoramica
@unifast/highlight offre l’evidenziazione della sintassi basata su lowlight (un wrapper di highlight.js). A differenza dei plugin integrati syntect() e treeSitter(), che eseguono l’evidenziazione in Rust, questo pacchetto applica l’evidenziazione come trasformazione HAST in JavaScript dopo la compilazione, dandoti accesso al vasto ecosistema di linguaggi e temi di highlight.js.
Installazione
Avvio rapido
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 classesCome funziona
Il compilatore Rust produce un output HAST con blocchi
<pre><code>non evidenziatiL’hook
hastTransformdel pluginhighlight()attraversa l’albero HASTPer ogni elemento
<code>con una classelanguage-*, lowlight evidenzia il codiceI nodi HAST evidenziati sostituiscono i figli originali
Poiché viene eseguito come trasformazione HAST, l’evidenziazione Rust nativa (syntect / treeSitter) deve essere disabilitata. Il plugin imposta automaticamente highlight.enabled: false nelle opzioni di compilazione.
Riepilogo degli export
| Export | Tipo | Descrizione |
|---|---|---|
highlight | function | Crea un plugin di trasformazione HAST basato su highlight.js |