ルーターこのページを編集

マークダウン

ファイルシステムベースのルーターは、すぐに使用できるMarkdownをサポートしています。標準のMarkdownファイルだけでなく、MDXやRemarkとRehypeの両方のプラグインもサポートします。

MarkdownまたはMDXを使用するには、.mdまたは.mdx拡張子のページを作成するだけです。ファイルの内容は、React Server Componentとしてレンダリングされます。

ページのルートディレクトリに、以下のようなreadme.mdxという名前のページを作成します。

# Hello MDX!

This is an MDX page.

このルートは/readmeですぐに利用できるようになります。

Markdown/MDXドキュメントはReact Server Componentとしてレンダリングされるため、クライアントコンポーネント、フォールバックの読み込み、エラーバウンダリなどのすべてのReact機能もサポートされます。すべての標準ページと同様です。

親レイアウトはMarkdown/MDXページにも適用されます。

豆知識: このドキュメントWebサイトも、ファイルシステムベースのルーターとMDXを使用して作成されました。

ファイルシステムベースのルーターでは、任意のRemarkまたはRehypeプラグインを使用できます。プラグインをインストールして、react-server.config.mjsファイルに追加するだけです。以下の例では、remark-gfmrehype-highlightを使用しています。

import rehypeHighlight from "rehype-highlight";
import rehypeMdxCodeProps from "rehype-mdx-code-props";
import remarkGfm from "remark-gfm";

export default {
  mdx: {
    remarkPlugins: [remarkGfm],
    rehypePlugins: [rehypeHighlight, rehypeMdxCodeProps],
  },
};

カスタムコンポーネントを使用するには、プロジェクトルートにmdx-components.jsxまたはmdx-components.tsxファイルを作成する必要があります。このファイルは、カスタムコンポーネントを含むオブジェクトを返すuseMDXComponents関数をエクスポートする必要があります。

export default function useMDXComponents() {
  return {
    h1: (props) => <h1 style={{ color: "red" }} {...props} />,
  };
}

useMDXComponents関数をエクスポートするファイルのデフォルトの場所をreact-server.config.mjsファイル内のどこに配置するかを指定することもできます。

export default {
  mdx: {
    components: "./src/mdx-components.jsx",
  },
};