はじめに
Fumadocs の公式コンテンツソースである Fumadocs MDX を紹介します。
はじめに
Fumadocs MDX は、Content Collections と同様に、コンテンツを型安全なデータに変換するツールです。
本格的な CMS ではなく、React フレームワーク向けのコンテンツ処理レイヤーです。ブログ記事などのコンテンツの管理にも利用できます。
Collection とは?
Collection とは、特定の種類のファイルをまとめたものです。アプリ内で Macro API を使って定義できます。
import { defineDocs } from 'fumadocs-mdx/macro';
import { loader } from 'fumadocs-core/source';
const docs = defineDocs({
dir: 'content/docs',
});
export const source = loader({
baseUrl: '/docs',
source: docs.toFumadocsSource(),
});利用できるコレクションは次のとおりです。
Markdown & MDX ファイルを React コンポーネントにコンパイルします。目次などの便利なプロパティも利用できます。
import { defineCollections } from 'fumadocs-mdx/macro';
export const test = defineCollections({
type: 'doc',
dir: 'content/docs',
});たとえば、doc コレクションは次のような .md および .mdx ファイルを変換します。
Config API を使って source.config.ts でコレクションを定義することもできます。この場合、エントリーファイルは .source 配下に生成されます。
インストール
使用する環境に合わせて Fumadocs MDX を設定してください。
Next.js
Next.js で Fumadocs MDX を使用する
Vite
Vite で Fumadocs MDX を使用する
ランタイムローダー
JavaScript ランタイムで Fumadocs MDX を使用する
よくある質問
組み込みプロパティ
以下のプロパティは、MDX ファイルからデフォルトでエクスポートされます。
| プロパティ | 説明 |
|---|---|
frontmatter | フロントマター |
toc | 目次 |
structuredData | 構造化データ。検索の実装に便利です |
extractedReferences | hrefs の参照の解析に使用します |
フロントマターのカスタマイズ
schema オプションでバリデーションスキーマを渡すと、フロントマターを検証し、その出力プロパティを定義できます。
MDX ページでは、フロントマターをコードでエクスポートすることもできます。エクスポートした値は YAML フロントマターを上書きする形でマージされ、その結果がコレクションのスキーマで検証されます。
---
title: Introduction
---
import { version } from '../../package.json';
export const frontmatter = {
description: `The docs of v${version}.`,
};このエクスポートはビルド時に実行されます。ページのインポートや、同じブロック内でそれより前に記述されたエクスポートは使用できますが、ページのコンテンツやコンポーネントは使用できません。staticParams は YAML フロントマターに記述したままにしてください。ローダーはエクスポートが実行される前にこの値を読み取るためです。
コンパイラのカスタマイズ
Fumadocs MDX は、MDX Compiler を通じて unified で MDX ファイルを JavaScript ファイルにコンパイルします。
コレクションごとに、代わりに Sätteri でコンパイルすることもできます。どちらにも、プラグインと設定のデフォルトプリセットが用意されています。
How is this guide?
最終更新日
