Markdown 機能
zfb の Markdown パイプラインが提供するすべての機能 — コア(常時有効)とオプトイン(zfb.config.ts で有効化)。
zfb の Markdown パイプラインは階層構造になっています。コア機能の一群は
すべてのコンテンツコレクションに対して無条件で動作し、見出しアンカー、
サーバーサイドのシンタックスハイライト、CJK フレンドリーな強調などを提供します。
その上に、オプトイン機能のカタログがあり、zfb.config.ts の
markdown.features.* で一つずつ有効化できます。
このページは全体の地図です。各機能には、使用例・設定キー・順序に関する 注意点をまとめた専用ページがあります。
依存グラフ
zfb-content — コア機能はここにある。常にコンパイルされる
└─ zfb-md-extras — オプトイン機能。コンパイルはされるが実行時にゲートされる
└─ zfb-md-ast — 共有 AST 型(MdastNode、HastNode、ビジター)zfb-md-ast クレートは MdastVisitor および HastVisitor トレイトと
共有ノード型を定義します。コアとオプトインの両方の機能がこれらの
トレイトを実装します。
ティアの規約
コア — すべてのビルドで有効。設定キーはなし。
zfb-contentに存在する。オプトイン — デフォルトでは無効。
zfb.config.tsのmarkdown.features.*で有効化する。zfb-md-extrasに存在する。
各機能ページでは、タイトル付近に Core または Opt-in のバッジが表示されます。
オプトイン機能を有効化する
import { defineConfig } from "zfb/config";
export default defineConfig({
markdown: {
features: {
mermaid: true,
directives: {
note: "Note",
tip: "Tip",
},
},
},
});true(デフォルトを使用)または設定オブジェクト(特定のオプションを上書き)を
渡します。キーを省略するとその機能はオフになり、余分なバイトは一切出力されません。
コア機能
これらの常時有効なプラグインは、zfb-content のデフォルトパイプラインの
一部として同梱されています。
CJK フレンドリーな強調 — CJK の表意文字やかなに隣接する太字/斜体を再トークン化する。
見出しリンク — すべての見出しにスラッグ化した
id属性と自己参照アンカーリンクを付与する。コードブロックのタイトル —
title="…"からフェンス付きコードブロックの上にファイル名ラベルを描画する。外部リンク — 外部リンクに
targetとrel属性を付与する(設定可能)。リンク解決 — コンテンツのソースマップを使って内部リンクの参照先を書き換える。
.md 拡張子の除去 — 内部リンクの href から
.md/.mdxの接尾辞を取り除く。シンタックスハイライト — syntect によるサーバーサイドハイライト。常時有効でテーマは設定可能。
ディレクティブレジストリ —
:::name/::name/:nameのディレクティブ構文を JSX コンポーネントへマッピングする。
オプトイン機能
それぞれ markdown.features.* で有効化します。すべて zfb-md-extras に存在します。
ディレクティブ —
:::name/::name/:nameのディレクティブ構文を独自の JSX コンポーネントにマッピングして登録する(デフォルトはゼロ。語彙はあなたが用意する)。Mermaid ダイアグラム — フェンス付きコードブロックから Mermaid のフローチャートを描画する。
見出しマーカー TOC — 指定した見出しの後に目次を自動挿入する。
GitHub アラート —
> [!NOTE]/> [!WARNING]の引用ブロックをスタイル付きコンポーネントとして描画する。読了時間 — 推定読了時間を計算してフロントマターに注入する。
GitHub オートリンク — GitHub の issue/PR/コミット参照(
#123、org/repo#456、abc1234)を自動的にリンクする。コードブロックのエンリッチメント — フェンス付きコードブロックに diff マーカーと行単位のハイライトを追加する。
コードタブ — 連続するフェンス付きコードブロックをタブ切り替え式にまとめる。
ルビ注釈 —
{これは}^{これ}(キャレット、推奨)または{漢字|かんじ}(パイプ、レガシーエイリアス)構文を HTML の<ruby>要素として描画する。TOC エクスポート — 構造化された見出しツリーをコンパイル済みの JSX モジュールにエクスポートし、フレームワーク側で描画できるようにする。
画像サイズ — 実際のファイルから
<img>要素にwidthとheight属性を注入する。リンク検証 — デフォルトでは壊れた内部リンクを警告する。
failOnBroken: trueでビルドエラーにする。トランスクルージョン —
:::includeディレクティブを使って別ファイルの内容をインライン展開する。
関連項目
設計思想 — レシピをオプトイン機能へ 昇格させるための「3 つの利用者」のしきい値。
Markdown パイプラインを拡張する — Rust ビジターを書いてエンジンに組み込む。
カスタムディレクティブ — Rust を書かずに 新しいディレクティブ名を登録する。
レシピ: 拡大可能な画像 — 削除された
imageEnlarge組み込み機能の代替を、imgコンポーネントの上書きで ユーザーランドで実現する。レシピ: Admonitions —
:::note、:::tipなどを最小限のコンポーネントスタブと CSS フックとともにdirectivesで登録する。