@unifast/react

unifast の HAST 出力を、コンポーネントマッピングを伴って React 要素へ変換します。

概要

@unifast/react は、unifast の HAST (HTML 抽象構文木) 出力を React 要素へ変換します。主要な関数は次の 2 つです。

  • compileToReact() - 高レベル: Markdown/MDX をコンパイルして React 要素を直接返します

  • hastToReact() - 低レベル: HAST ツリーを React 要素に変換します

このパッケージは、HTML から React へのプロパティ名の変換 (class から classNamefor から htmlFor など) と、CSS スタイル文字列のパースを自動的に処理します。

インストール

ピア依存: compileToReact を使うには @unifast/node が必要です。

型定義

CompileToReactOptions

CompileOptions に React 固有のフィールドを追加した型です。

プロパティ説明
createElementCreateElementReact の createElement 関数
FragmentunknownReact の Fragment コンポーネント
components?ComponentMapHTML タグ名から React コンポーネントへのマップ
(all CompileOptions)-CompileOptions から継承

CompileToReactResult

プロパティ説明
elementunknownルートの React 要素
frontmatterRecord<string, unknown>パース済みの frontmatter メタデータ
diagnosticsDiagnostic[]警告とエラー
stats{ parseMs, transformMs, emitMs }処理時間の内訳 (ミリ秒)
tocTocEntry[]抽出された目次

HastToReactOptions

プロパティ説明
createElementCreateElementReact の createElement 関数
FragmentunknownReact の Fragment コンポーネント
components?ComponentMapHTML タグ名からカスタム React コンポーネントへのマップ

CreateElement

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

ComponentMap

type ComponentMap = Record<string, unknown>;

プロパティの変換

HTML 属性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

CSS の style 文字列は、React のスタイルオブジェクト (例: "font-size: 16px" から { fontSize: "16px" }) に自動的にパースされます。

エクスポート一覧

エクスポート種類説明
compileToReactfunctionMarkdown/MDX を React 要素にコンパイルする
hastToReactfunctionHAST を React 要素に変換する
CompileToReactOptionstypecompileToReact のオプション
CompileToReactResulttypecompileToReact の結果
HastToReactOptionstypehastToReact のオプション
CreateElementtypeReact の createElement シグネチャ
ComponentMaptypeHTML タグからコンポーネントへのマップ