Skip to content

ファイル取り込み#

View Markdown

Markdown ファイルの取り込みはオプトインです。有効にすると、HTML コメントのディレクティブが、ホスト文書のパース前に別の Markdown ファイルをインライン展開します。

オプション 既定
includes boolean / IncludeOptions false
import { oxContent } from "@ox-content/vite-plugin";

export default {
  plugins: [
    oxContent({
      includes: true,
    }),
  ],
};

ディレクティブ#

<!-- @include: ./shared/warning.md -->

パスは引用符で囲んでも構いません("./shared/warning.md" または './shared/warning.md')。パス周りの空白は切り詰めます。

このサイトは includes をオンにしているので、次の段落は _fragments/include-warning.md のライブ取り込みです。

この段落は、transform 時に _fragments/include-warning.md から 取り込まれます。

パス解決#

  • 相対パスは現在のファイルから解決します。
  • @/ と先頭の /rootDir から解決します(rootDir を省略したときは Vite のプロジェクトルート)。
  • canonicalize のあと、rootDir の外に出るパスは拒否します。ディレクティブはソースに残り、変換エラーを報告します。
  • 見つからない、または読めない対象も変換エラーです。ディレクティブはそのまま残します。
oxContent({
  includes: {
    rootDir: process.cwd(),
  },
});

入れ子の取り込み#

取り込まれたファイルは、さらに別のファイルを取り込めます。循環(AB を取り込み、BA を取り込む)と、16 段より深い入れ子は変換エラーです。それらのディレクティブはリテラルのままです。

展開されないもの#

フェンスコード、インデントコード、インラインコードの中ではディレクティブは展開しません。<!-- @include: PATH --> ちょうどではない HTML コメントはそのままです。閉じていないコメントも同様です。

取り込まれた Markdown はそのあとホスト文書の一部としてパースされるので、断片の中の見出しやリストは本物の見出しやリストになります。

関連#

Last updated: