@unifast/react

Converte a saída HAST do unifast em elementos React com mapeamento de componentes

Visão Geral

O @unifast/react converte a saída HAST (HTML Abstract Syntax Tree) do unifast em elementos React. Ele fornece duas funções principais:

  • compileToReact() - Alto nível: compila Markdown/MDX e retorna elementos React diretamente

  • hastToReact() - Baixo nível: converte uma árvore HAST em elementos React

O pacote lida automaticamente com a renomeação de propriedades de HTML para React (class para className, for para htmlFor, etc.) e com o parsing de strings de style CSS.

Instalação

Peer dependency: @unifast/node é obrigatório para o compileToReact.

Definições de Tipos

CompileToReactOptions

Estende CompileOptions com campos específicos do React.

PropriedadeTipoDescrição
createElementCreateElementA função createElement do React
FragmentunknownO componente Fragment do React
components?ComponentMapMapa de nomes de tags HTML para componentes React
(todas as CompileOptions)-Herdadas de CompileOptions

CompileToReactResult

PropriedadeTipoDescrição
elementunknownO elemento React raiz
frontmatterRecord<string, unknown>Metadados de frontmatter parseados
diagnosticsDiagnostic[]Avisos e erros
stats{ parseMs, transformMs, emitMs }Detalhamento de tempo (ms)
tocTocEntry[]Table of contents extraída

HastToReactOptions

PropriedadeTipoDescrição
createElementCreateElementA função createElement do React
FragmentunknownO componente Fragment do React
components?ComponentMapMapa de nomes de tags HTML para componentes React customizados

CreateElement

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

ComponentMap

type ComponentMap = Record<string, unknown>;

Conversão de Propriedades

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

Strings style CSS são automaticamente parseadas em objetos style do React (ex.: "font-size: 16px" se torna { fontSize: "16px" }).

Resumo de Exports

ExportTipoDescrição
compileToReactfunctionCompila Markdown/MDX para elementos React
hastToReactfunctionConverte HAST para elementos React
CompileToReactOptionstypeOpções para compileToReact
CompileToReactResulttypeResultado de compileToReact
HastToReactOptionstypeOpções para hastToReact
CreateElementtypeAssinatura do createElement do React
ComponentMaptypeMapa de tag HTML para componente