@unifast/react

Mengonversi output HAST unifast menjadi elemen React dengan pemetaan komponen

Ikhtisar

@unifast/react mengonversi output HAST (HTML Abstract Syntax Tree) unifast menjadi elemen React. Paket ini menyediakan dua fungsi utama:

  • compileToReact() - Tingkat tinggi: meng-compile Markdown/MDX dan langsung mengembalikan elemen React

  • hastToReact() - Tingkat rendah: mengonversi sebuah pohon HAST menjadi elemen React

Paket ini secara otomatis menangani penggantian nama properti HTML-ke-React (class menjadi className, for menjadi htmlFor, dll.) dan parsing string style CSS.

Instalasi

Peer dependency: @unifast/node diperlukan untuk compileToReact.

Definisi Tipe

CompileToReactOptions

Memperluas CompileOptions dengan field khusus React.

PropertiTipeDeskripsi
createElementCreateElementFungsi createElement dari React
FragmentunknownKomponen Fragment dari React
components?ComponentMapPemetaan dari nama tag HTML ke komponen React
(seluruh CompileOptions)-Diwarisi dari CompileOptions

CompileToReactResult

PropertiTipeDeskripsi
elementunknownElemen React root
frontmatterRecord<string, unknown>Metadata frontmatter yang sudah di-parse
diagnosticsDiagnostic[]Peringatan dan error
stats{ parseMs, transformMs, emitMs }Rincian timing (ms)
tocTocEntry[]Daftar isi yang diekstrak

HastToReactOptions

PropertiTipeDeskripsi
createElementCreateElementFungsi createElement dari React
FragmentunknownKomponen Fragment dari React
components?ComponentMapPemetaan dari nama tag HTML ke komponen React kustom

CreateElement

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

ComponentMap

type ComponentMap = Record<string, unknown>;

Konversi Properti

Atribut 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

String style CSS secara otomatis di-parse menjadi objek style React (misalnya "font-size: 16px" menjadi { fontSize: "16px" }).

Ringkasan Export

ExportJenisDeskripsi
compileToReactfunctionMeng-compile Markdown/MDX menjadi elemen React
hastToReactfunctionMengonversi HAST menjadi elemen React
CompileToReactOptionstypeOpsi untuk compileToReact
CompileToReactResulttypeHasil dari compileToReact
HastToReactOptionstypeOpsi untuk hastToReact
CreateElementtypeSignature createElement React
ComponentMaptypePemetaan tag HTML ke komponen