Example blog article with mdx

This article shows how to configure and create blog posts in .mdx using Next.js15 and React19, including MathJax for rendering mathematical equations

// mdx-components.tsx
export function useMDXComponents(components: MDXComponents): MDXComponents {
    return {
        a: (props) => (
            <Link {...(props as LinkProps)}>
                {props.children}
            </Link>
        ),
        ...components,
    }
}
// nextjs.config.mjs
import createMDX from '@next/mdx'
import remarkMath from "remark-math"
import remarkParse from 'remark-parse'
import remarkGfm from 'remark-gfm'
import rehypeMathjax from 'rehype-mathjax'
import rehypeSlug from 'rehype-slug'

/** @type {import('next').NextConfig} */
const nextConfig = {}


const withMDX = createMDX({
    extension: /\.mdx$/,
    options: {
        remarkPlugins: [remarkParse, remarkMath, remarkGfm],
        // Note: The plugin options {"tex": {"tags": "ams"}} are necessary
        // for rendering numbered equations.
        rehypePlugins: [[rehypeMathjax, {"tex": {"tags": "ams"}}], rehypeSlug]
    }
})

export default withMDX(nextConfig)