@unifast/react

Convertit la sortie HAST d'unifast en éléments React, avec mappage de composants

Vue d’ensemble

@unifast/react convertit la sortie HAST (HTML Abstract Syntax Tree) d’unifast en éléments React. Le paquet fournit deux fonctions principales :

  • compileToReact() - Haut niveau : compile du Markdown/MDX et retourne directement des éléments React

  • hastToReact() - Bas niveau : convertit un arbre HAST en éléments React

Le paquet prend automatiquement en charge le renommage des propriétés HTML vers leurs équivalents React (class vers className, for vers htmlFor, etc.) ainsi que l’analyse des chaînes de style CSS.

Installation

Dépendance par les pairs : @unifast/node est requis pour compileToReact.

Définitions de types

CompileToReactOptions

Étend CompileOptions avec des champs propres à React.

PropriétéTypeDescription
createElementCreateElementLa fonction createElement de React
FragmentunknownLe composant Fragment de React
components?ComponentMapTable associant les noms de balises HTML à des composants React
(toutes les CompileOptions)-Héritées de CompileOptions

CompileToReactResult

PropriétéTypeDescription
elementunknownL’élément React racine
frontmatterRecord<string, unknown>Métadonnées frontmatter analysées
diagnosticsDiagnostic[]Avertissements et erreurs
stats{ parseMs, transformMs, emitMs }Détail du temps passé (ms)
tocTocEntry[]Table des matières extraite

HastToReactOptions

PropriétéTypeDescription
createElementCreateElementLa fonction createElement de React
FragmentunknownLe composant Fragment de React
components?ComponentMapTable associant les noms de balises HTML à des composants React personnalisés

CreateElement

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

ComponentMap

type ComponentMap = Record<string, unknown>;

Conversion des propriétés

Attribut 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

Les chaînes CSS style sont automatiquement converties en objets de style React (par exemple, "font-size: 16px" devient { fontSize: "16px" }).

Résumé des exports

ExportNatureDescription
compileToReactfonctionCompile du Markdown/MDX vers des éléments React
hastToReactfonctionConvertit du HAST en éléments React
CompileToReactOptionstypeOptions de compileToReact
CompileToReactResulttypeRésultat de compileToReact
HastToReactOptionstypeOptions de hastToReact
CreateElementtypeSignature de createElement React
ComponentMaptypeTable associant balise HTML et composant