Import MDX Files
Importing MDX files directly
Introduction
MDX files will be compiled into JavaScript with exports like:
default: the main component.frontmatter: frontmatter data.- other properties generated by remark/rehype plugins.
Hence, they can also be used as a page, or components that you can import.
Using as Component
You can import them as a component:
import MyPage from '@/content/page.mdx';
import { getMDXComponents } from '@/mdx-components';
export default function Page() {
return (
<div className="prose">
{/* pass MDX components and render it */}
<MyPage components={getMDXComponents()} />
</div>
);
}Using as Page
On Next.js, you can use page.mdx instead of page.tsx for creating a new page under the app directory.
---
title: My Page
---
export { default } from '@/components/layouts/page';
# Hello World
This is my page.MDX Components
It doesn't have MDX components by default, you have to provide them:
import defaultMdxComponents from 'fumadocs-ui/mdx';
import type { MDXComponents } from 'mdx/types';
export function getMDXComponents(components?: MDXComponents): MDXComponents {
return {
...defaultMdxComponents, // for Fumadocs UI
...components,
};
}
// export a `useMDXComponents()` that returns MDX components
export const useMDXComponents = getMDXComponents;Other Frameworks?
Other frameworks like Tanstack Start require explicit declaration of loaders, it's recommended to use them as components in your pages instead.
How is this guide?
Last updated on
