@unifast/core

TypeScript-Typdefinitionen, HAST-Dienstprogramme und Fehlerklassen, die von den unifast-Runtime-Paketen gemeinsam genutzt werden

Überblick

@unifast/core stellt gemeinsam genutzte TypeScript-Typdefinitionen für Kompilierungsoptionen, Ergebnisse, HAST-Knoten (HTML Abstract Syntax Tree), die Plugin-Schnittstelle und Fehlerklassen bereit. Es ist eine Abhängigkeit von Runtime-Paketen wie @unifast/node – Sie müssen es in der Regel nicht direkt installieren.

Verwenden Sie für den Compiler und die integrierten Plugins @unifast/node.

Installation

Typdefinitionen

CompileOptions

Konfiguration für die Funktion compile().

EigenschaftTypStandardBeschreibung
inputKind"md" | "mdx""md"Eingabeformat
outputKind"html" | "hast" | "mdast" | "mdxJs""html"Ausgabeformat
gfmobject-Einstellungen für GitHub Flavored Markdown
gfm.tablesboolean-GFM-Tabellen aktivieren
gfm.taskListboolean-Aufgabenlisten-Checkboxen aktivieren
gfm.strikethroughboolean-~~Durchstreichung~~ aktivieren
gfm.footnotesboolean-Fußnoten aktivieren
gfm.autolinkboolean-Automatische URL-Verlinkung aktivieren
frontmatterobject-Einstellungen für das Frontmatter-Parsing
frontmatter.yamlboolean-YAML-Frontmatter parsen
frontmatter.tomlboolean-TOML-Frontmatter parsen
frontmatter.jsonboolean-JSON-Frontmatter parsen
rawHtml"disallow" | "allowDangerous" | "parseAndSanitize"-Umgang mit Roh-HTML in der Quelle
sanitizeobject-Einstellungen für die HTML-Sanitization
sanitize.enabledboolean-Sanitization aktivieren
sanitize.schemaSanitizeSchema-Benutzerdefinierte Sanitization-Regeln
highlightobject-Einstellungen für die Syntax-Hervorhebung
highlight.enabledboolean-Syntax-Hervorhebung aktivieren
highlight.engine"none" | "syntect" | "treeSitter"-Hervorhebungs-Engine
slugobject-Einstellungen für die Erzeugung von Überschriften-Slugs
slug.mode"github" | "unicode"-Algorithmus zur Slug-Erzeugung
tocobject-Einstellungen für das Inhaltsverzeichnis
toc.enabledboolean-TOC-Extraktion aktivieren
toc.maxDepthnumber-Maximale einzubeziehende Überschriftentiefe
diagnosticsobject-Einstellungen für die Diagnoseausgabe
diagnostics.format"compact" | "verbose"-Diagnoseformat
cacheobject-Einstellungen für das Caching
cache.enabledboolean-Ergebnis-Caching aktivieren
cache.dirstring-Pfad zum Cache-Verzeichnis
pluginsUnifastPlugin[][]Array der anzuwendenden Plugins

CompileResult

Wird von der Funktion compile() zurückgegeben.

EigenschaftTypBeschreibung
outputstring | objectKompilierte Ausgabe (HTML-String, HAST-JSON oder MDAST-JSON, je nach outputKind)
frontmatterRecord<string, unknown>Geparste Frontmatter-Metadaten
diagnosticsDiagnostic[]Array von Warnungen und Fehlern
stats{ parseMs, transformMs, emitMs }Zeitaufschlüsselung in Millisekunden
tocTocEntry[]Extrahierte Inhaltsverzeichnis-Einträge

Diagnostic

EigenschaftTypBeschreibung
level"error" | "warn"Schweregrad
messagestringMenschenlesbare Nachricht
startnumber | undefinedStart-Byte-Offset in der Quelle
endnumber | undefinedEnd-Byte-Offset in der Quelle
linenumber | undefinedZeilennummer (1-basiert)
columnnumber | undefinedSpaltennummer (1-basiert)

TocEntry

Eine einzelne Überschrift, die für das Inhaltsverzeichnis extrahiert wurde.

EigenschaftTypBeschreibung
depthnumberÜberschriftsebene (1-6)
textstringTextinhalt der Überschrift
slugstringGenerierter Slug für die Anker-Verlinkung

SanitizeSchema

Benutzerdefinierte Sanitization-Regeln.

EigenschaftTypBeschreibung
allowedTagsstring[]Zugelassene HTML-Tags
allowedAttributesRecord<string, string[]>Zugelassene Attribute pro Tag
allowedProtocolsRecord<string, string[]>Zugelassene URL-Protokolle pro Attribut

UnifastPlugin

Die Plugin-Schnittstelle zur Erweiterung von unifast.

EigenschaftTypBeschreibung
namestringEindeutiger Plugin-Name
options?Partial<CompileOptions>Optionen, die in die Kompilierungsoptionen eingemischt werden
hastTransform?(hast: HastRoot) => HastRootTransformiert den HAST-Baum nach der Kompilierung

HAST-Knotentypen

Typtype-FeldEigenschaftenBeschreibung
HastRoot"root"children: HastNode[]Wurzelknoten des Baums
HastElement"element"tagName, properties, childrenEin HTML-Element
HastText"text"value: stringEin Textknoten
HastRaw"raw"value: stringDurchleitung von Roh-HTML
HastComment"comment"value: stringEin HTML-Kommentar
HastDoctype"doctype"-Ein <!DOCTYPE html>-Knoten

HastNode ist der Vereinigungstyp: HastRoot | HastElement | HastText | HastRaw | HastComment | HastDoctype

Fehlerklassen

KlasseErweitertEigenschaftenBeschreibung
UnifastErrorErrorcode?: string, span?: { start, end }Basisfehlerklasse für alle unifast-Fehler
ParseErrorUnifastErrorcode: "PARSE_ERROR"Wird ausgelöst, wenn Markdown-/MDX-Eingaben nicht geparst werden können
CompileErrorUnifastErrorcode: "COMPILE_ERROR"Wird ausgelöst, wenn die Kompilierung nach dem Parsen fehlschlägt
import { UnifastError, ParseError, CompileError } from "@unifast/core";

try {
  // ... compile something
} catch (err) {
  if (err instanceof ParseError) {
    console.error(`Parse error at ${err.span?.start}: ${err.message}`);
  } else if (err instanceof CompileError) {
    console.error(`Compile error: ${err.message}`);
  }
}

Zusammenfassung der Exporte

ExportArtBeschreibung
CompileOptionstypeKompilierungskonfiguration
CompileResulttypeKompilierungsergebnis
TocEntrytypeInhaltsverzeichnis-Eintrag
SanitizeSchematypeSanitization-Regeln
UnifastPlugintypePlugin-Schnittstelle
HastNodetypeVereinigung aller HAST-Knotentypen
HastRoottypeHAST-Wurzelknoten
HastElementtypeHAST-Elementknoten
HastTexttypeHAST-Textknoten
HastRawtypeHAST-Roh-HTML-Knoten
HastCommenttypeHAST-Kommentarknoten
HastDoctypetypeHAST-Doctype-Knoten
hastToHtmlfunctionHAST-zu-HTML-Serialisierer
escapeHtmlfunctionMaskiert HTML-Sonderzeichen (&, <, >, ")
extractLangfunctionExtrahiert Sprachbezeichner aus einem HAST-<code>-Element
extractTextfunctionExtrahiert den Textinhalt aus einem HAST-Knoten
findCodeChildfunctionFindet das <code>-Kindelement innerhalb eines <pre>-Elements
visitHastfunctionVisitor-Pattern-Dienstprogramm zum Durchlaufen von HAST-Bäumen
UnifastErrorclassBasisfehlerklasse
ParseErrorclassParse-Fehlerklasse
CompileErrorclassKompilier-Fehlerklasse