@unifast/react

Converte l'output HAST di unifast in elementi React con mappatura dei componenti

Panoramica

@unifast/react converte l’output HAST (HTML Abstract Syntax Tree) di unifast in elementi React. Fornisce due funzioni principali:

  • compileToReact() - Alto livello: compila Markdown/MDX e restituisce direttamente elementi React

  • hastToReact() - Basso livello: converte un albero HAST in elementi React

Il pacchetto gestisce automaticamente la rinomina delle proprietà da HTML a React (class in className, for in htmlFor, ecc.) e il parsing delle stringhe di stile CSS.

Installazione

Dipendenza peer: @unifast/node è richiesto per compileToReact.

Definizioni dei tipi

CompileToReactOptions

Estende CompileOptions con campi specifici per React.

ProprietàTipoDescrizione
createElementCreateElementFunzione createElement di React
FragmentunknownComponente Fragment di React
components?ComponentMapMappa dei nomi dei tag HTML verso componenti React
(tutte le CompileOptions)-Ereditate da CompileOptions

CompileToReactResult

ProprietàTipoDescrizione
elementunknownL’elemento React radice
frontmatterRecord<string, unknown>Metadati del frontmatter analizzati
diagnosticsDiagnostic[]Avvisi ed errori
stats{ parseMs, transformMs, emitMs }Dettaglio dei tempi (ms)
tocTocEntry[]Tabella dei contenuti estratta

HastToReactOptions

ProprietàTipoDescrizione
createElementCreateElementFunzione createElement di React
FragmentunknownComponente Fragment di React
components?ComponentMapMappa dei nomi dei tag HTML verso componenti React personalizzati

CreateElement

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

ComponentMap

type ComponentMap = Record<string, unknown>;

Conversione delle proprietà

Attributo HTMLProp React
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

Le stringhe di style CSS vengono analizzate automaticamente in oggetti di stile React (ad esempio, "font-size: 16px" diventa { fontSize: "16px" }).

Riepilogo degli export

ExportTipoDescrizione
compileToReactfunctionCompila Markdown/MDX in elementi React
hastToReactfunctionConverte HAST in elementi React
CompileToReactOptionstypeOpzioni per compileToReact
CompileToReactResulttypeRisultato di compileToReact
HastToReactOptionstypeOpzioni per hastToReact
CreateElementtypeFirma di createElement di React
ComponentMaptypeMappa dai tag HTML ai componenti