Custom MDX Example

Aug 11, 2024

MillionRay website blog uses custom MDX for blog posts, making it easy to include JSX components such as interactive embeds, charts, or alerts directly in your markdown content.

Here are some examples of using MDX:

h2 Heading

h3 Heading

h4 Heading

h5 Heading

Emphasis

This is bold text

This is italic text

Strikethrough

Blockquotes

If today were the last day of my life, would I want to do what I am about to do today? – Steve Jobs

  • MillionRay is built with Next.js.
  • MillionRay uses pnpm for package management.

CodeBlocks

// This is commented-out code
export default function HelloWorld() {
  return (
    <h1>Hello, World!</h1>
  );
}

Images

MillionRay uses Next.js Image in MDX for seamless image rendering:

<Image
  src="/opengraph-image.png"
  alt="OpenGraph image"
  width={640}
  height={500}
/>

Renders:

OpenGraph image

Image Grid

MillionRay uses a custom image grid component to display image galleries.

<ImageGrid
  columns={3} // Accepts 2, 3, or 4 columns
  images={[
    { src: "/photos/photo1.jpg", alt: "Photo1", href: "#" }, // 'href' is optional
    { src: "/photos/photo2.jpg", alt: "Photo2", href: "#" },
    { src: "/photos/photo3.jpg", alt: "Photo3"},
  ]}
/>

Renders:

Photo1
Photo2
Photo3

Embeds

Tweets

MillionRay uses react-tweet to embed tweets in MDX posts.

<StaticTweet id="1617979122625712128" />

Renders:

YouTube Videos

MillionRay uses react-youtube to embed YouTube videos in MDX posts.

<YouTube videoId="vxwaDsRgvTo" />

Renders:

Captions

MillionRay uses react-wrap-balancer to evenly balance captions in MDX posts.

<Caption>
  Captions that flow smoothly, making your content easy to read and visually
  appealing with a clean look.
</Caption>

Renders:

Captions that flow smoothly, making your content easy to read and visually appealing with a clean look.

Tables

MillionRay uses a custom table component to render tables in MDX posts.

<Table
  data={{
    headers: ["Title", "Description"],
    rows: [
      [
        "First item",
        "Lorem ipsum dolor sit amet consectetur adipisicing elit. Aliquid perspiciatis repellat amet quos.",
      ],
      [
        "Second item",
        "Lorem ipsum dolor sit amet consectetur adipisicing elit. Aliquid perspiciatis repellat amet quos.",
      ],
    ],
  }}
/>

Renders:

TitleDescription
First itemLorem ipsum dolor sit amet consectetur adipisicing elit. Aliquid perspiciatis repellat amet quos.
Second itemLorem ipsum dolor sit amet consectetur adipisicing elit. Aliquid perspiciatis repellat amet quos.

Math Expressions

MillionRay allows you to render mathematical expressions in MDX posts using KaTeX . Simply wrap your expression in $ to include KaTeX within your MDX content.

$
\int_0^\infty e^{-x^2} dx = \frac{\sqrt{\pi}}{2}
$

Renders:

0ex2dx=π2\int_0^\infty e^{-x^2} dx = \frac{\sqrt{\pi}}{2}

Callout

MillionRay uses a custom callout component to render important information in MDX posts.

<Callout emoji="💡">
[MillionRay](https://millionray.site) is a clean, simple, and fast portfolio built with Next.js, Tailwind CSS, and pnpm for optimal performance.
</Callout>

Renders:

💡

MillionRay is a clean, simple, and fast portfolio built with Next.js, Tailwind CSS, and pnpm for optimal performance.

MillionRay Real Estate. All Rights Reserved.