zfb
GitHub リポジトリ

検索したい単語を入力

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

.md 拡張子の除去

ビルド時に内部リンクの href から .md または .mdx の接尾辞を取り除く、opt-in のトップレベル設定。

stripMdExt は opt-in のトップレベル zfb.config.ts フィールドであり、markdown.features entry ではありません。デフォルトは false です。省略した場合、または false に設定した場合、著者が書いた .md / .mdx href は保持されます。

有効にすると、StripMdExtensionPlugin は内部リンクの href 値から .md または .mdx の接尾辞を取り除き、末尾に / を付けます。これにより、[page](./other.md) のように記述したリンクは ./other/ のようなクリーンな出力 URL を生成します。

何をするか

hast フェーズで、プラグインはすべての <a> 要素をたどります。path が .md または .mdx で終わる各内部リンクに対して:

  1. 拡張子を取り除く。

  2. 取り除いた path に末尾の / を付ける。

  3. クエリ文字列とフラグメントを slash の後に保持する。

プラグインが手を加えるのは内部の相対パスとルート相対パスです。絶対 URL(https://)、アンカーのみのリンク(#section)、リンク以外の要素、Markdown 以外のファイル拡張子を持つ href は変更されません。trailing-slash モードでは、./guide../guide のような拡張子なしの相対 href も ./guide/../guide/ になります。

設定

トップレベルで有効化します:

zfb.config.ts
import { defineConfig } from "zfb/config";

export default defineConfig({
  stripMdExt: true,
});

両方が設定されている場合、プラグインは ResolveLinksPlugin の後に実行されます。そのため、残っている Markdown 拡張子を cleanup する前に、すでに解決済みのパスを参照します。

See [setup](./installation.mdx#requirements) for details.

stripMdExt: true の場合、次を生成します:

<p>See <a href="./installation/#requirements">setup</a> for details.</p>

stripMdExt: false または config field 省略時は、著者が書いた ./installation.mdx#requirements href が保持されます。

関連項目

  • リンク解決 — このプラグインの前に実行され、 参照先のパスを正規化する。

Revision History

作成更新