@unifast/react

Konvertiert die HAST-Ausgabe von unifast in React-Elemente mit Komponenten-Mapping

Überblick

@unifast/react konvertiert die HAST-Ausgabe (HTML Abstract Syntax Tree) von unifast in React-Elemente. Es stellt zwei Hauptfunktionen bereit:

  • compileToReact() – High-Level: kompiliert Markdown/MDX und gibt direkt React-Elemente zurück

  • hastToReact() – Low-Level: konvertiert einen HAST-Baum in React-Elemente

Das Paket übernimmt automatisch die Umbenennung von HTML- zu React-Eigenschaften (class zu className, for zu htmlFor usw.) sowie das Parsen von CSS-Style-Strings.

Installation

Peer-Abhängigkeit: Für compileToReact wird @unifast/node benötigt.

Typdefinitionen

CompileToReactOptions

Erweitert CompileOptions um React-spezifische Felder.

EigenschaftTypBeschreibung
createElementCreateElementDie createElement-Funktion von React
FragmentunknownDie Fragment-Komponente von React
components?ComponentMapZuordnung von HTML-Tag-Namen zu React-Komponenten
(alle CompileOptions)-Von CompileOptions geerbt

CompileToReactResult

EigenschaftTypBeschreibung
elementunknownDas React-Wurzelelement
frontmatterRecord<string, unknown>Geparste Frontmatter-Metadaten
diagnosticsDiagnostic[]Warnungen und Fehler
stats{ parseMs, transformMs, emitMs }Zeitaufschlüsselung (ms)
tocTocEntry[]Extrahiertes Inhaltsverzeichnis

HastToReactOptions

EigenschaftTypBeschreibung
createElementCreateElementDie createElement-Funktion von React
FragmentunknownDie Fragment-Komponente von React
components?ComponentMapZuordnung von HTML-Tag-Namen zu benutzerdefinierten React-Komponenten

CreateElement

type CreateElement = (type: any, props: any, ...children: any[]) => any;

ComponentMap

type ComponentMap = Record<string, unknown>;

Eigenschaftskonvertierung

HTML-AttributReact-Prop
classclassName
forhtmlFor
accesskeyaccessKey
autocompleteautoComplete
autofocusautoFocus
autoplayautoPlay
charsetcharSet
colspancolSpan
contenteditablecontentEditable
crossorigincrossOrigin
datetimedateTime
enctypeencType
formactionformAction
hreflanghrefLang
httpequivhttpEquiv
inputmodeinputMode
maxlengthmaxLength
minlengthminLength
novalidatenoValidate
readonlyreadOnly
referrerpolicyreferrerPolicy
rowspanrowSpan
spellcheckspellCheck
srcdocsrcDoc
srclangsrcLang
srcsetsrcSet
tabindextabIndex
usemapuseMap

CSS-style-Strings werden automatisch in React-Style-Objekte geparst (z. B. wird aus "font-size: 16px" das Objekt { fontSize: "16px" }).

Zusammenfassung der Exporte

ExportArtBeschreibung
compileToReactfunctionKompiliert Markdown/MDX zu React-Elementen
hastToReactfunctionKonvertiert HAST zu React-Elementen
CompileToReactOptionstypeOptionen für compileToReact
CompileToReactResulttypeErgebnis von compileToReact
HastToReactOptionstypeOptionen für hastToReact
CreateElementtypeReact-createElement-Signatur
ComponentMaptypeZuordnung von HTML-Tag zu Komponente