@unifast/react

Convierte la salida HAST de unifast en elementos React con mapeo de componentes

Visión general

@unifast/react convierte la salida HAST (HTML Abstract Syntax Tree) de unifast en elementos React. Proporciona dos funciones principales:

  • compileToReact() - Alto nivel: compila Markdown/MDX y retorna elementos React directamente

  • hastToReact() - Bajo nivel: convierte un árbol HAST en elementos React

El paquete gestiona automáticamente el renombrado de propiedades de HTML a React (class a className, for a htmlFor, etc.) y el parsing de cadenas de estilos CSS.

Instalación

Dependencia peer: @unifast/node es necesario para compileToReact.

Definiciones de tipos

CompileToReactOptions

Extiende CompileOptions con campos específicos de React.

PropiedadTipoDescripción
createElementCreateElementLa función createElement de React
FragmentunknownEl componente Fragment de React
components?ComponentMapMapa de nombres de etiquetas HTML a componentes React
(todas las CompileOptions)-Heredadas de CompileOptions

CompileToReactResult

PropiedadTipoDescripción
elementunknownEl elemento React raíz
frontmatterRecord<string, unknown>Metadatos del frontmatter parseados
diagnosticsDiagnostic[]Avisos y errores
stats{ parseMs, transformMs, emitMs }Desglose de tiempos (ms)
tocTocEntry[]Tabla de contenidos extraída

HastToReactOptions

PropiedadTipoDescripción
createElementCreateElementLa función createElement de React
FragmentunknownEl componente Fragment de React
components?ComponentMapMapa de nombres de etiquetas HTML a componentes React personalizados

CreateElement

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

ComponentMap

type ComponentMap = Record<string, unknown>;

Conversión de propiedades

Atributo 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

Las cadenas CSS style se parsean automáticamente a objetos de estilo de React (p. ej., "font-size: 16px" se convierte en { fontSize: "16px" }).

Resumen de exports

ExportTipoDescripción
compileToReactfunctionCompila Markdown/MDX a elementos React
hastToReactfunctionConvierte HAST a elementos React
CompileToReactOptionstypeOpciones para compileToReact
CompileToReactResulttypeResultado de compileToReact
HastToReactOptionstypeOpciones para hastToReact
CreateElementtypeFirma de createElement de React
ComponentMaptypeMapa de etiqueta HTML a componente