@unifast/core

unifast のランタイムパッケージ間で共有される TypeScript の型定義、HAST ユーティリティ、エラークラスです。

概要

@unifast/core は、compile オプションや結果、HAST (HTML 抽象構文木) ノード、プラグインインターフェース、エラークラスのための共有 TypeScript 型定義を提供します。@unifast/node のようなランタイムパッケージの依存関係であり、通常は直接インストールする 必要はありません

コンパイラや組み込みプラグインを利用する場合は @unifast/node を使用してください。

インストール

型定義

CompileOptions

compile() 関数の設定です。

プロパティデフォルト説明
inputKind"md" | "mdx""md"入力フォーマット
outputKind"html" | "hast" | "mdast" | "mdxJs""html"出力フォーマット
gfmobject-GitHub Flavored Markdown の設定
gfm.tablesboolean-GFM テーブルを有効にする
gfm.taskListboolean-タスクリストのチェックボックスを有効にする
gfm.strikethroughboolean-~~strikethrough~~ を有効にする
gfm.footnotesboolean-脚注を有効にする
gfm.autolinkboolean-URL の自動リンクを有効にする
frontmatterobject-frontmatter のパース設定
frontmatter.yamlboolean-YAML frontmatter をパースする
frontmatter.tomlboolean-TOML frontmatter をパースする
frontmatter.jsonboolean-JSON frontmatter をパースする
rawHtml"disallow" | "allowDangerous" | "parseAndSanitize"-ソース内の生の HTML の扱い方
sanitizeobject-HTML サニタイズの設定
sanitize.enabledboolean-サニタイズを有効にする
sanitize.schemaSanitizeSchema-カスタムサニタイズルール
highlightobject-シンタックスハイライトの設定
highlight.enabledboolean-シンタックスハイライトを有効にする
highlight.engine"none" | "syntect" | "treeSitter"-ハイライトエンジン
slugobject-見出しスラグ生成の設定
slug.mode"github" | "unicode"-スラグ生成アルゴリズム
tocobject-目次の設定
toc.enabledboolean-TOC 抽出を有効にする
toc.maxDepthnumber-含める見出しの最大深さ
diagnosticsobject-診断出力の設定
diagnostics.format"compact" | "verbose"-診断フォーマット
cacheobject-キャッシュの設定
cache.enabledboolean-結果キャッシュを有効にする
cache.dirstring-キャッシュディレクトリのパス
pluginsUnifastPlugin[][]適用するプラグインの配列

CompileResult

compile() 関数が返す値です。

プロパティ説明
outputstring | objectコンパイル結果 (HTML 文字列、HAST JSON、または MDAST JSON。outputKind によって異なります)
frontmatterRecord<string, unknown>パース済みの frontmatter メタデータ
diagnosticsDiagnostic[]警告とエラーの配列
stats{ parseMs, transformMs, emitMs }ミリ秒単位の処理時間の内訳
tocTocEntry[]抽出された目次のエントリ

Diagnostic

プロパティ説明
level"error" | "warn"重大度レベル
messagestring人間が読めるメッセージ
startnumber | undefinedソース内の開始バイトオフセット
endnumber | undefinedソース内の終了バイトオフセット
linenumber | undefined行番号 (1 始まり)
columnnumber | undefined列番号 (1 始まり)

TocEntry

目次用に抽出された見出し 1 つ分です。

プロパティ説明
depthnumber見出しレベル (1 〜 6)
textstring見出しのプレーンテキスト内容
slugstringアンカーリンク用に生成されたスラグ

SanitizeSchema

カスタムサニタイズルールです。

プロパティ説明
allowedTagsstring[]許可する HTML タグ
allowedAttributesRecord<string, string[]>タグごとに許可する属性
allowedProtocolsRecord<string, string[]>属性ごとに許可する URL プロトコル

UnifastPlugin

unifast を拡張するためのプラグインインターフェースです。

プロパティ説明
namestring一意なプラグイン名
options?Partial<CompileOptions>compile オプションにマージするオプション
hastTransform?(hast: HastRoot) => HastRootコンパイル後に HAST ツリーを変換する

HAST ノードの型

type フィールドプロパティ説明
HastRoot"root"children: HastNode[]ツリーのルートノード
HastElement"element"tagName, properties, childrenHTML 要素
HastText"text"value: stringテキストノード
HastRaw"raw"value: string生の HTML のパススルー
HastComment"comment"value: stringHTML コメント
HastDoctype"doctype"-<!DOCTYPE html> ノード

HastNode はユニオン型です: HastRoot | HastElement | HastText | HastRaw | HastComment | HastDoctype

エラークラス

クラス継承元プロパティ説明
UnifastErrorErrorcode?: string, span?: { start, end }すべての unifast エラーの基底クラス
ParseErrorUnifastErrorcode: "PARSE_ERROR"Markdown/MDX 入力をパースできなかった場合にスローされます
CompileErrorUnifastErrorcode: "COMPILE_ERROR"パース後のコンパイルに失敗した場合にスローされます
import { UnifastError, ParseError, CompileError } from "@unifast/core";

try {
  // ... compile something
} catch (err) {
  if (err instanceof ParseError) {
    console.error(`Parse error at ${err.span?.start}: ${err.message}`);
  } else if (err instanceof CompileError) {
    console.error(`Compile error: ${err.message}`);
  }
}

エクスポート一覧

エクスポート種類説明
CompileOptionstypeコンパイル設定
CompileResulttypeコンパイル結果
TocEntrytype目次のエントリ
SanitizeSchematypeサニタイズルール
UnifastPlugintypeプラグインインターフェース
HastNodetypeすべての HAST ノード型のユニオン
HastRoottypeHAST ルートノード
HastElementtypeHAST 要素ノード
HastTexttypeHAST テキストノード
HastRawtypeHAST 生 HTML ノード
HastCommenttypeHAST コメントノード
HastDoctypetypeHAST doctype ノード
hastToHtmlfunctionHAST から HTML へのシリアライザ
escapeHtmlfunctionHTML の特殊文字 (&<>") をエスケープする
extractLangfunctionHAST の <code> 要素から言語識別子を抽出する
extractTextfunctionHAST ノードからプレーンテキストの内容を抽出する
findCodeChildfunction<pre> 要素の内部から <code> 子要素を見つける
visitHastfunctionHAST ツリーを走査するビジターパターンのユーティリティ
UnifastErrorclass基底エラークラス
ParseErrorclassパースエラークラス
CompileErrorclassコンパイルエラークラス