@unifast/react

Chuyển đầu ra HAST của unifast thành các React element với khả năng ánh xạ component

Tổng quan

@unifast/react chuyển đổi đầu ra HAST (HTML Abstract Syntax Tree) của unifast thành các React element. Nó cung cấp hai hàm chính:

  • compileToReact() - Cấp cao: biên dịch Markdown/MDX và trả về trực tiếp các React element

  • hastToReact() - Cấp thấp: chuyển cây HAST thành các React element

Gói này tự động xử lý việc đổi tên thuộc tính từ HTML sang React (class thành className, for thành htmlFor, v.v.) và parse chuỗi CSS style.

Cài đặt

Peer dependency: @unifast/node là cần thiết cho compileToReact.

Định nghĩa kiểu

CompileToReactOptions

Kế thừa CompileOptions và bổ sung thêm các trường dành riêng cho React.

Thuộc tínhKiểuMô tả
createElementCreateElementHàm createElement của React
FragmentunknownComponent Fragment của React
components?ComponentMapMap từ tên thẻ HTML sang React component
(tất cả CompileOptions)-Kế thừa từ CompileOptions

CompileToReactResult

Thuộc tínhKiểuMô tả
elementunknownReact element gốc
frontmatterRecord<string, unknown>Metadata frontmatter đã được parse
diagnosticsDiagnostic[]Cảnh báo và lỗi
stats{ parseMs, transformMs, emitMs }Thống kê thời gian (ms)
tocTocEntry[]Mục lục đã được trích xuất

HastToReactOptions

Thuộc tínhKiểuMô tả
createElementCreateElementHàm createElement của React
FragmentunknownComponent Fragment của React
components?ComponentMapMap từ tên thẻ HTML sang React component tùy chỉnh

CreateElement

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

ComponentMap

type ComponentMap = Record<string, unknown>;

Chuyển đổi thuộc tính

Thuộc tính 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

Các chuỗi CSS style được tự động parse thành các đối tượng style của React (ví dụ, "font-size: 16px" trở thành { fontSize: "16px" }).

Tổng hợp các export

ExportLoạiMô tả
compileToReactfunctionBiên dịch Markdown/MDX thành các React element
hastToReactfunctionChuyển HAST thành các React element
CompileToReactOptionstypeTùy chọn cho compileToReact
CompileToReactResulttypeKết quả của compileToReact
HastToReactOptionstypeTùy chọn cho hastToReact
CreateElementtypeChữ ký của React createElement
ComponentMaptypeMap từ thẻ HTML sang component