自定义组件

Methanol 自动加载 components/ 目录下的组件,并使其在所有 MDX 页面中全局可用。鉴于组件由 rEFui 渲染,开发者可直接调用 rEFui 的 JSX 运行时及相关 API。

组件加载机制

示例:

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

客户端专用组件

若组件依赖浏览器特有 API,请使用 .client 后缀。

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>