zudo-doc
GitHub リポジトリ

検索したい単語を入力

いつでも検索バーを開ける

Transclude

作成 2026年5月28日更新 2026年6月7日Takeshi Takatsudo

:::include{file="…"} または ![[path]] で別ファイルの内容を埋め込みます。zudo-doc では無効(transclude レンダラー未配線)。

transclude 機能は、別ファイルの内容を Markdown ドキュメントに埋め込みます。インクルードされたファイルは Markdown として解析され、その AST がパイプラインの残りが実行される前にマージされます。

zudo-doc では無効 — transclude レンダラー未配線

transclude は zudo-doc の zfb.config.ts から省略され無効化されています。根本的な理由は、transclude レンダラーがまだ配線されていないことです。ディレクティブを出力に変換する <include> コンポーネントが登録されていません。その結果、:::include{file="…"} ディレクティブは SSR レンダリングが 500 を返し![[path]] ウィキリンク形式は zfb 0.1.0-next.13no-op になります(リテラルテキスト ![[path]] として描画されます)。以下の構文はフェンスコードブロック内にのみ記載されており、このページでライブの :::include ディレクティブは記述していません。zfb.config.ts の 1 行コメントが、transclude レンダラーが配線され次第の再有効化を示しています。

設定

レンダラーが配線されたら、デフォルトで有効化します。オブジェクト型の機能であるため、オプションオブジェクトを渡す必要があります。

zfb.config.ts
export default defineConfig({
  markdown: {
    features: {
      transclude: {},
    },
  },
});

インクルードチェーンの最大深度を調整する場合:

zfb.config.ts
transclude: { maxDepth: 5 },

ディレクティブ構文

基本的なインクルード — パスは現在のソースファイルからの相対で解決されます。

:::include{file="./snippets/intro.md"}

ファイルをフェンスコードブロックとしてインクルードする場合:

:::include{file="./examples/hello.rs" code=true lang="rust"}

行範囲をスライスする場合(1 始まり、両端を含む):

:::include{file="./src/lib.rs" code=true lang="rust" lines="10-30"}

ウィキリンク形式

![[path]] ウィキリンクは代替のインクルード構文です。

![[snippets/intro.md]]

next.13 ではこの形式は no-op で、リテラルテキストとして描画されます。

オプション

オプションデフォルト説明
maxDepth5インクルードチェーンの最大深度。インクルードされたファイル自身も、この深度まで :::include ディレクティブを含めることができます。

意図された機能

  • チェーン: インクルードされたファイルは、maxDepth までさらに :::include ディレクティブを含めることができます。

  • 循環検出: ファイルが相互にインクルードし合うことによる無限ループを防止します。

  • パス制限: 相対パスのみ許可され、プロジェクトルート外への走査は拒否されます。

  • 空行要件: ディレクティブはブロックレベルのコンテンツとして認識されるために、上下に空行が必要です。

Revision History

Takeshi Takatsudo作成: 2026-05-29T01:44:41+09:00更新: 2026-06-07T17:11:47+09:00

AI Assistant

Ask a question about the documentation.