importPage Function
Function to import an MDX/Markdown page from the content directory.
This function is essential for Nextra’s dynamic page loading from a catch-all route.
Exported from nextra/pages.
Signature
Parameters:Promise<EvaluateResult>A Promise that resolves to an object containing:
default: The MDX component to rendertoc: Table of contents listmetadata: Page’s front matter ormetadataobject includingtitle,description, etc.
Example
Basic usage in a dynamic Next.js route
const { default: MDXContent, toc, metadata } = await importPage(['docs', 'getting-started'])Usage with i18n
const { default: MDXContent } = await importPage(['docs', 'getting-started'], 'en')Import page’s front matter in generateMetadata function
// app/[[...mdxPath]]/page.tsx
import { importPage } from 'nextra/pages'
 
export async function generateMetadata(props) {
  const params = await props.params
  const { metadata } = await importPage(params.mdxPath)
  return metadata
}Import page in a catch-all route
// app/[[...mdxPath]]/page.tsx
import { generateStaticParamsFor, importPage } from 'nextra/pages'
import { useMDXComponents as getMDXComponents } from 'path/to/your/mdx-components'
 
export const generateStaticParams = generateStaticParamsFor('mdxPath')
 
const Wrapper = getMDXComponents().wrapper
 
export default async function Page(props) {
  const params = await props.params
  const result = await importPage(params.mdxPath)
  const { default: MDXContent, toc, metadata } = result
  return (
    <Wrapper toc={toc} metadata={metadata}>
      <MDXContent {...props} params={params} />
    </Wrapper>
  )
}