Next.js + MDX
Use MDX with Next.js
Installation
npm install --save @next/mdx @mdx-js/loader
or
yarn add @next/mdx @mdx-js/loader
Usage
Create a next.config.js
in your project
const withMDX = require('@next/mdx')()
module.exports = withMDX()
Optionally you can provide MDX options:
const withMDX = require('@next/mdx')({
options: {
mdPlugins: [],
hastPlugins: [],
},
})
module.exports = withMDX()
Optionally you can add your custom Next.js configuration as parameter
const withMDX = require('@next/mdx')()
module.exports = withMDX({
webpack(config, options) {
return config
},
})
Optionally you can match other file extensions for MDX compilation, by default only .mdx
is supported
const withMDX = require('@next/mdx')({
extension: /\.(md|mdx)$/,
})
module.exports = withMDX()
Top level .mdx pages
Define the pagesExtensions
option to have Next.js handle .mdx
files in the pages
directory as pages:
const withMDX = require('@next/mdx')({
extension: /\.mdx?$/,
})
module.exports = withMDX({
pageExtensions: ['js', 'jsx', 'mdx'],
})
Typescript
Follow this guide from the MDX docs.