カスタムコンポーネント

Methanol は components/ ディレクトリからコンポーネントを読み込み、すべての MDX ファイルで利用可能にします。コンポーネントは rEFui を使用してレンダリングされるため、カスタム UI を構築する際にはその JSX ランタイムや API を活用できます。

コンポーネントの検出

例:

components/
  Callout.jsx
  Hero.client.jsx
  Toc.static.jsx

クライアント専用コンポーネント

クライアント側でのみ実行されるコンポーネントには、.client サフィックスを付与します。これは、ブラウザ API に依存するコンポーネントに役立ちます。

components/ThemeSearch.client.jsx

静的コンポーネント

ビルド時に評価・レンダリングされるべきコンポーネントには、.static サフィックスを使用します。

クライアント専用コンポーネントに対応するサーバー/静的コンポーネントが存在しない場合、Methanol はクライアントコンポーネントを静的にレンダリングしようと試みます。クライアントコンポーネントがブラウザ専用の API を使用している場合は、サーバーサイドレンダリング用に適切な静的コンポーネントを用意する必要があります。

components/Notice.static.jsx

定義と使用例

// components/Callout.jsx
export default function Callout({ title }, ...children) {
	return (
		<div class="callout">
			<strong>{title}</strong>
			<div>{...children}</div>
		</div>
	)
}
<Callout title="Tip">
  段落を短く保つことで、情報の可読性を高めることができます。
</Callout>