Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including @zeit/next-mdx with all npm packages installed. Try it out:

require("@mdx-js/mdx/package.json"); // @mdx-js/mdx is a peer dependency. var nextMdx = require("@zeit/next-mdx")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

@zeit/next-mdx v1.2.0

Next.js + MDX

Use MDX with Next.js

Installation

npm install --save @zeit/next-mdx @mdx-js/mdx

or

yarn add @zeit/next-mdx @mdx-js/mdx

Usage

Create a next.config.js in your project

// next.config.js
const withMDX = require('@zeit/next-mdx')()
module.exports = withMDX()

Optionally you can provide MDX options:

// next.config.js
const withMDX = require('@zeit/next-mdx')({
  options: {
    mdPlugins: [

    ],
    hastPlugins: [

    ]
  }
})
module.exports = withMDX()

Optionally you can add your custom Next.js configuration as parameter

// next.config.js
const withMDX = require('@zeit/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

// next.config.js
const withMDX = require('@zeit/next-mdx')({
  extension: /\.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:

// next.config.js
const withMDX = require('@zeit/next-mdx')({
  extension: /\.mdx?$/
})
module.exports = withMDX({
  pageExtensions: ['js', 'jsx', 'mdx']
})

Metadata

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free