Skip to content

Markdown パーシャル#

View Markdown

パラメータ付きパーシャルはオプトインで、既定はオフです。有効にすると、HTML コメントのディレクティブが別の Markdown ファイルをインライン展開し、名前付きの {{ values }} をホスト文書のパース前に置換します。既存の <!-- @include: --> の挙動は変わりません。

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

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

false または省略はディレクティブをリテラルのままにします。true またはオブジェクトで変換を有効にします。展開はビルド時のみです。

ディレクティブ#

<!-- @partial: ./_partials/install.md package="ox-content" manager="pnpm" -->

このサイトは partials をオンにしているので、次の文はライブのパーシャルです。

pnpmox-content をインストールします。

パスは引用符で囲んでも構いません。install.md のような裸の名前は _partials の下で解決します(root で変更できます)。{{ name }} の置換は HTML エスケープされるので、<script> を生のマークアップとして注入できません。

欠けているパラメータ#

欠けている {{ name }} はリテラルのまま残します。空文字には置き換えません。missing: "error" にすると、プレースホルダは残したまま変換診断を出します。

oxContent({
  partials: {
    root: "_partials",
    missing: "literal",
  },
});
フィールド 既定
enabled boolean true
rootDir string プロジェクト
root string "_partials"
missing "literal" / "error" "literal"

パスの安全#

  • 相対の ./../ は現在のファイルから解決します。
  • @/ と先頭の /rootDir から解決します。
  • canonicalize のあと、rootDir の外に出るパスは拒否します。ディレクティブはソースに残り、変換エラーを報告します。
  • 循環と 16 段より深い入れ子は変換エラーです。診断にはホストファイルと行番号が入ります。

展開されないもの#

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

関連#

Last updated: