@unifast/highlight
Auf highlight.js basierendes Plugin zur Syntax-Hervorhebung für unifast über HAST-Transformationen
Überblick
@unifast/highlight stellt eine Syntax-Hervorhebung bereit, die von lowlight (einem Wrapper für highlight.js) unterstützt wird. Anders als die integrierten Plugins syntect() und treeSitter(), die die Hervorhebung in Rust ausführen, wendet dieses Paket die Hervorhebung nach der Kompilierung als JavaScript-HAST-Transformation an – so erhalten Sie Zugriff auf das umfangreiche Sprach- und Theme-Ökosystem von highlight.js.
Installation
Schnellstart
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 classesFunktionsweise
Der Rust-Compiler erzeugt HAST-Ausgabe mit nicht hervorgehobenen
<pre><code>-BlöckenDie
hastTransformdeshighlight()-Plugins durchläuft den HAST-BaumFür jedes
<code>-Element mit einerlanguage-*-Klasse hebt lowlight den Code hervorDie hervorgehobenen HAST-Knoten ersetzen die ursprünglichen Kinder
Da dies als HAST-Transformation ausgeführt wird, muss die native Rust-Hervorhebung (syntect / treeSitter) deaktiviert sein. Das Plugin setzt automatisch highlight.enabled: false in den Kompilierungsoptionen.
Zusammenfassung der Exporte
| Export | Art | Beschreibung |
|---|---|---|
highlight | function | Erstellt ein highlight.js-HAST-Transformations-Plugin |