---
title: インクルード
description: ページ間でコンテンツを再利用 — 共有の Markdown、MDX、コードファイルを include 構文で任意のページに差し込みます。
---

スニペットを一度書けば、任意のページに差し込めます。単独の行に置いた `<include>` 文は、ビルド時に別のファイルを埋め込み、その内容がインラインで書かれていたかのように扱われます — 見出しはページの目次に加わり、テキストは検索でインデックスされ、内容はページの `.md` ミラーおよび llms-full.txt にも現れます。

```mdx
<include>./_snippets/prerequisites.mdx</include>
```

パスはインクルード元のファイルからの相対で解決されます。`/` で始まるパスはコンテンツルートから解決されるため、深くネストしたページでも `../../..` の連なりなしに共有スニペットを参照できます。

```mdx
<include>/_snippets/prerequisites.mdx</include>
```

この構文は Fumadocs の include 構文と一致しているため、移行したコンテンツはそのまま動作します。

こちらが実際の動作です — 次のコールアウトは共有スニペットから差し込まれたものです。

:::tip
このコールアウトは `_snippets/include-demo.mdx` にあります — このページが `<include>` ステートメントで差し込んでいるため、ここに表示されます。
:::

## パーシャル

名前（またはフォルダー名）がアンダースコアで始まるファイルは、デフォルトでルーティング、ナビゲーション、検索、サイトマップから除外されます。この慣習は共有スニペットの置き場所として最適です。

```text
docs/
  _snippets/
    prerequisites.mdx
    cli-flags.md
  guides/
    quickstart.mdx   ← <include>../_snippets/prerequisites.mdx</include>
  index.mdx
```

パーシャルは通常の Markdown または MDX ファイルです。差し込み時にフロントマターは取り除かれ（インクルード元ページのフロントマターが優先されます）、それ以外のすべて — コールアウト、コードフェンス、コンポーネント、数式 — はインラインで書いた場合とまったく同じようにレンダリングされます。パーシャルは他のパーシャルをインクルードできます。循環インクルードはエラーとして報告されます。

パーシャル内の相対画像参照はそのまま機能します。インクルード元のページを基準に再解決されるため、パーシャルの隣に配置した `![図](./diagram.png)` は、そのパーシャルがどこに差し込まれても正しく解決されます。

`blume dev` の実行中にパーシャルを編集すると、それをインクルードしているすべてのページがリロードされます。

## コードファイルのインクルード

`.md`/`.mdx` 以外のターゲットは、拡張子から推論された言語でフェンス付きコードブロックとして埋め込まれます。言語を上書きするには（または Markdown ファイルを差し込む代わりにソースとして表示するには）`lang` を使い、タイトルなどのフェンスのメタ文字列を渡すには `meta` を使います。

```mdx
<include>./examples/config.ts</include>

<include lang="ts" meta='title="blume.config.ts"'>
  ../blume.config.ts
</include>

<include lang="mdx">./_snippets/prerequisites.mdx</include>
```

## ルールと診断

include 文は単独の行を占める必要があります — インラインではなくブロックレベルの要素だからです。フェンス付きコードブロック内の文はそのまま残されるため、（このページのように）構文そのものをドキュメント化できます。

ターゲットはコンテンツルート内に存在しなければなりません。ルート外のファイルはバージョンスナップショットや eject したプロジェクトから黙って欠落してしまうため、`blume` は差し込む代わりに `BLUME_INCLUDE_OUTSIDE_ROOT` を報告します。存在しないターゲットは `BLUME_INCLUDE_NOT_FOUND`、インクルードのループは `BLUME_INCLUDE_CYCLE` となります。これら 3 つはいずれも `blume build` を失敗させ（それでもビルドするには `--no-strict` を渡します）、`blume validate` にも表示されます。

パーシャル内のリンク切れは、それを差し込んでいるページではなくパーシャルのファイルに対して報告されるため、実体のある場所で修正できます。

:::note
パーシャルはロケール間で共有され、`blume translate` では翻訳されません。パーシャルは言語に依存しない内容（コード、表、図）に保つか、ロケールごとのパーシャルを作成して各ロケールのページからインクルードしてください。
:::
