Logo
MDXMarkdownReactNext.jsFrontend DevelopmentWeb Development

Implement Fancy MDX

Tue Apr 26 2022Thu Apr 18 202414 minutes

Fancy MDX

All your .md and .mdx files under the contents directory will be rendered with MDX, it's an advanced Markdown format with React component support.

Heading

# **Hello**, This Is a _Title_ Inside `h1`
## **Hello**, This Is a _Title_ Inside `h2`
### **Hello**, This Is a _Title_ Inside `h3`
#### **Hello**, This Is a _Title_ Inside `h4`
##### **Hello**, This Is a _Title_ Inside `h5`
###### **Hello**, This Is a _Title_ Inside `h6`
Renders:

Hello, This Is a Title Inside h1

Hello, This Is a Title Inside h2

Hello, This Is a Title Inside h3

Hello, This Is a Title Inside h4

Hello, This Is a Title Inside h5
Hello, This Is a Title Inside h6

List

Unordered List

- Create a list by starting a line with `+`, `-`, or `*`.
- Sub-lists are made by indenting 2 spaces:
+ Marker character change forces new list start:
* Ac tristique libero volutpat at.
- Facilisis in pretium nisl aliquet.
+ Nulla volutpat aliquam velit.
- Very easy!
Renders:
  • Create a list by starting a line with +, -, or *.
  • Sub-lists are made by indenting 2 spaces:
    • Marker character change forces new list start:
      • Ac tristique libero volutpat at.
      • Facilisis in pretium nisl aliquet.
      • Nulla volutpat aliquam velit.
  • Very easy!

Ordered List

Sequential numbering:
1. Lorem ipsum dolor sit amet:
1. Lorem ipsum dolor sit amet:
1. Lorem ipsum dolor sit amet.
2. Consectetur adipiscing elit.
3. Integer molestie lorem at massa.
2. Consectetur adipiscing elit:
1. Lorem ipsum dolor sit amet.
3. Integer molestie lorem at massa:
1. Lorem ipsum dolor sit amet.
2. Consectetur adipiscing elit.
2. Consectetur adipiscing elit:
1. Lorem ipsum dolor sit amet:
1. Lorem ipsum dolor sit amet.
2. Consectetur adipiscing elit.
2. Consectetur adipiscing elit:
1. Lorem ipsum dolor sit amet.
2. Consectetur adipiscing elit.
3. Integer molestie lorem at massa.
3. Integer molestie lorem at massa:
1. Lorem ipsum dolor sit amet.
2. Consectetur adipiscing elit.
3. Integer molestie lorem at massa.
Renders:
  1. Lorem ipsum dolor sit amet:
    1. Lorem ipsum dolor sit amet:
      1. Lorem ipsum dolor sit amet.
      2. Consectetur adipiscing elit.
      3. Integer molestie lorem at massa.
    2. Consectetur adipiscing elit:
      1. Lorem ipsum dolor sit amet.
    3. Integer molestie lorem at massa:
      1. Lorem ipsum dolor sit amet.
      2. Consectetur adipiscing elit.
  2. Consectetur adipiscing elit:
    1. Lorem ipsum dolor sit amet:
      1. Lorem ipsum dolor sit amet.
      2. Consectetur adipiscing elit.
    2. Consectetur adipiscing elit:
      1. Lorem ipsum dolor sit amet.
      2. Consectetur adipiscing elit.
      3. Integer molestie lorem at massa.
  3. Integer molestie lorem at massa:
    1. Lorem ipsum dolor sit amet.
    2. Consectetur adipiscing elit.
    3. Integer molestie lorem at massa.
Same numbering:
1. You can keep all the numbers as `1.`:
1. Lorem ipsum dolor sit amet:
1. Lorem ipsum dolor sit amet.
1. Lorem ipsum dolor sit amet.
1. Lorem ipsum dolor sit amet.
1. Lorem ipsum dolor sit amet:
1. Lorem ipsum dolor sit amet.
1. Lorem ipsum dolor sit amet:
1. Lorem ipsum dolor sit amet.
1. Lorem ipsum dolor sit amet.
1. Lorem ipsum dolor sit amet:
1. Lorem ipsum dolor sit amet.
1. Lorem ipsum dolor sit amet.
1. Lorem ipsum dolor sit amet.
Renders:
  1. You can keep all the numbers as 1.:
    1. Lorem ipsum dolor sit amet:
      1. Lorem ipsum dolor sit amet.
      2. Lorem ipsum dolor sit amet.
      3. Lorem ipsum dolor sit amet.
    2. Lorem ipsum dolor sit amet:
      1. Lorem ipsum dolor sit amet.
    3. Lorem ipsum dolor sit amet:
      1. Lorem ipsum dolor sit amet.
      2. Lorem ipsum dolor sit amet.
  2. Lorem ipsum dolor sit amet:
    1. Lorem ipsum dolor sit amet.
    2. Lorem ipsum dolor sit amet.
    3. Lorem ipsum dolor sit amet.
Start numbering with offset:
108. 108 numbering list.
1. 1 numbering list.
1. 1 numbering list.
Renders:
  1. 108 numbering list.
  2. 1 numbering list.
  3. 1 numbering list.

Task List

- [x] Write the press release.
- [ ] Update the website.
- [ ] Contact the media.
Renders:
  • Write the press release.
  • Update the website.
  • Contact the media.

Horizontal Rule

___
Renders:
---
Renders:
***
Renders:

Emphasis

Bold

**This is bold text**.
__This is bold text__.
Renders:
This is bold text.
This is bold text.

Italic

*This is italic text*.
_This is italic text_.
Renders:
This is italic text.
This is italic text.

Strikethrough

~This is strikethrough text~.
~~This is strikethrough text~~.
Renders:
This is strikethrough text.
This is strikethrough text.

Blockquote

Nested Blockquote

> Blockquotes can also be nested...
> > ...by using additional greater-than signs right next to each other...
> > > ...or with spaces between arrows.
Renders:
Blockquotes can also be nested...
...by using additional greater-than signs right next to each other...
...or with spaces between arrows.

Continued Blockquote

> Blockquotes can also be continued...
> ...continued...
> ...continued continued...
Renders:
Blockquotes can also be continued... ...continued... ...continued continued...

Long Blockquote

> Blockquotes can be very very very very very very very very long...very very very very very very very very long...very very very very very very very very long...very very very very very very very very long...very very very very very very very very long...very very very very very very very very long...very very very very very very very very long...very very very very very very very very long...very very very very very very very very long...
Renders:
Blockquotes can be very very very very very very very very long...very very very very very very very very long...very very very very very very very very long...very very very very very very very very long...very very very very very very very very long...very very very very very very very very long...very very very very very very very very long...very very very very very very very very long...very very very very very very very very long...

Table

Basic Table

abcd
10200360048000
20010480003600
36004800010200
48000360020010
OptionDescription
datapath to data files to supply the data that will be passed into templates.
engineengine to be used for processing templates. Handlebars is the default.
extextension to be used for dest files.

Left Aligned Table

OptionDescription
datapath to data files to supply the data that will be passed into templates.
engineengine to be used for processing templates. Handlebars is the default.
extextension to be used for dest files.

Center Aligned Table

OptionDescription
datapath to data files to supply the data that will be passed into templates.
engineengine to be used for processing templates. Handlebars is the default.
extextension to be used for dest files.

Right Aligned Table

OptionDescription
datapath to data files to supply the data that will be passed into templates.
engineengine to be used for processing templates. Handlebars is the default.
extextension to be used for dest files.

Code

Inline code.
Block code "fences":
Sample text here...
Syntax highlighting:
const foo = function (bar) {
return bar++;
};
foo(5);
some.code();
[Link text](https://github.com/sabertazimi).
[Link with title](https://sabertazimi.github.io/awesome-notes 'title text!').
Renders:
Auto-converted link (enable linkify to see):

Footnote

A note[^1].
[^1]: Big note.
Another note[^2].
Yet another note[^3].
[^2]: Small note.
[^3]: Smallest note.
Renders (footnote renders at the end of the document):
A note1.
Another note2.
Yet another note3.

Image

Local Image

![Local image](/images/landing.jpg)
Renders:
Local image
Preview
Local image

Remote Image

![Minion](https://octodex.github.com/images/minion.png)
Renders:
Minion
Preview
Minion

Image Title

![Stormtroopocat](https://octodex.github.com/images/stormtroopocat.jpg 'The Stormtroopocat')
Renders:
Stormtroopocat
Preview
The Stormtroopocat
Stormtroopocat

Image Footnote

Like links, Images also have a footnote style syntax:
![Alt text][id]
With a reference later in the document defining the URL location:
[id]: https://octodex.github.com/images/dojocat.jpg 'The Dojocat'
Renders:
Alt text
Preview
The Dojocat
Alt text

JSX

JSX Element

<h2>JSX Heading 2</h2>
<abbr title="HyperText Markup Language">HTML</abbr> is a lovely language.
<section>And here is *markdown* in **JSX**!</section>
<div># this is not a heading but *this* is emphasis</div>
I can write **Markdown** alongside my _JSX_!
<div>This is a `p`.</div>
Renders:

JSX Heading 2

HTML is a lovely language.
And here is markdown in JSX!
# this is not a heading but this is emphasis
I can write Markdown alongside my JSX!
This is a p.

JavaScript Expression

Two 🍰 is: {Math.PI * 2}.
Renders:
Two 🍰 is: 6.283185307179586.
{(function () {
const guess = 0.44
if (guess > 0.66) {
return <span style={{color: 'tomato'}}>Look at us.</span>
}
if (guess > 0.33) {
return <span style={{color: 'violet'}}>Who would have guessed?!</span>
}
return <span style={{color: 'goldenrod'}}>Not me.</span>
})()}
Renders:
Who would have guessed?!

MDX Comment

{/* A comment! */}
Renders nothing.

Git

Emoji

Thumbs up :+1: πŸ‘, thumbs down :-1: πŸ‘Ž.
Families :family_man_man_boy_boy: πŸ‘¨β€πŸ‘¨β€πŸ‘¦β€πŸ‘¦.
Some flags :cn:, :us:, :ru:, :uk:, :fr: πŸ‡¨πŸ‡³, πŸ‡ΊπŸ‡Έ, πŸ‡·πŸ‡Ί, πŸ‡¬πŸ‡§, πŸ‡«πŸ‡·.
Tada :tada: πŸŽ‰, sparkles :sparkles: ✨, rocket :rocket: πŸš€.
Bug :bug: πŸ›, wrench :wrench: πŸ”§, zap :zap: ⚑.

Math

Inline Math Formula

This is a math formula $\sqrt{a^2 + b^2}$ a2+b2\sqrt{a^2 + b^2}.
This is another math formula $c = \pm\sqrt{a^2 + b^2}$ c=Β±a2+b2c = \pm\sqrt{a^2 + b^2}.

Block Math Formula

$$
L = \frac{1}{2} \rho v^2 S C_L
$$
$$
\def\arraystretch{1.5}
\begin{array}{c:c:c}
a & b & c \\ \hline
d & e & f \\
\hdashline
g & h & i
\end{array}
$$
$$
\begin{equation}
\begin{split}
a &= b + c \\
&= e + f
\end{split}
\end{equation}
$$
$$
\begin{align}
a &= b + c \\
d + e &= f
\end{align}
$$
$$
\begin{alignat}{2}
10 &x + &3 &y = 2 \\
3 &x + &13 &y = 4
\end{alignat}
$$
L=12ρv2SCLL = \frac{1}{2} \rho v^2 S C_L abcdefghi\def\arraystretch{1.5} \begin{array}{c:c:c} a & b & c \\ \hline d & e & f \\ \hdashline g & h & i \end{array} a=b+c=e+f\begin{equation} \begin{split} a &= b + c \\ &= e + f \end{split} \end{equation} a=b+cd+e=f\begin{align} a &= b + c \\ d + e &= f \end{align} 10x+3y=23x+13y=4\begin{alignat}{2} 10 &x + &3 &y = 2 \\ 3 &x + &13 &y = 4 \end{alignat}

Admonition

Green Admonition

:::success
Some **content** with _markdown_ `syntax`. Check [this `api`](#).
:::
:::tip
Some **content** with _markdown_ `syntax`. Check [this `api`](#).
:::
Renders:

Blue Admonition

:::info
Some **content** with _markdown_ `syntax`. Check [this `api`](#).
:::
:::note
Some **content** with _markdown_ `syntax`. Check [this `api`](#).
:::
Renders:

Yellow Admonition

::warning
Some **content** with _markdown_ `syntax`. Check [this `api`](#).
:::
:::caution
Some **content** with _markdown_ `syntax`. Check [this `api`](#).
:::
Renders:

Red Admonition

:::error
Some **content** with _markdown_ `syntax`. Check [this `api`](#).
:::
:::danger
Some **content** with _markdown_ `syntax`. Check [this `api`](#).
:::
Renders:

Title Admonition

:::tip{Your Title}
Some **content** with _markdown_ `syntax`.
I can write **Markdown** alongside my _JSX_!
Some **content** with _markdown_ `syntax`.
I can write **Markdown** alongside my _JSX_!
Some **content** with _markdown_ `syntax`.
I can write **Markdown** alongside my _JSX_!
Some **content** with _markdown_ `syntax`.
I can write **Markdown** alongside my _JSX_!
- List.
- List.
- List.
- List.
- List.
- List.
- List.
- List.
- List.
- List.
- List.
- List.
1. List.
1. List.
1. List.
2. List.
3. List.
2. List.
1. List.
3. List.
1. List.
2. List.
2. List.
3. List.
:::
Renders:
:::note{MDX in Admonition}
Two 🍰 is: {Math.PI * 2}.
{(function () {
const guess = 0.88
if (guess > 0.66) {
return <span style={{color: 'tomato'}}>Look at us.</span>
}
if (guess > 0.33) {
return <span style={{color: 'violet'}}>Who would have guessed?!</span>
}
return <span style={{color: 'goldenrod'}}>Not me.</span>
})()}
:::
Renders:

MDX Component

<Button>MDX Default Button</Button>
<Button type="primary">MDX Primary Button</Button>
Renders:
<Button type="dashed">MDX Dashed Button</Button>
<Button type="text">MDX Text Button</Button>
<Button type="link">MDX Link Button</Button>
Renders:
<Button type="primary" danger>MDX Danger Button</Button>
<Button type="primary" ghost>MDX Ghost Button</Button>
Renders:

Footnotes

  1. Big note. ↩
  2. Small note. ↩
  3. Smallest note. ↩
Copyright Β© Sabertaz
Built with React and Next
Last Build Time