Headings

Published Sep 26, 2025
Updated Sep 26, 2025
3 minutes read

This post demonstrates that our markdown blog system can render the same rich content as our guides.
This is the exact same content from "Basic Writing and Formatting Syntax" but in post format.

To create a heading, add one to two # symbols before your heading text. The number of # you use will determine the hierarchy level and typeface size of the heading.

Heading 1

Heading 2

# Heading 1
## Heading 2

You can indicate emphasis with bold, italic, strikethrough, subscript, or superscript text in comment fields and .md files.

Bold
Italic
Strikethrough
Subscript
Superscript
K
**Bold**
*Italic*
~~Strikethrough~~
<sub>Subscript</sub>
<sup>Superscript</sup>
<kbd>⌘</kbd><kbd>K</kbd>

You can quote text with a >.

Text that is not a quote

Text that is a quote

Text that is not a quote
> Text that is a quote

You can create an inline link by wrapping link text in brackets, and then wrapping the URL in parentheses.

[Link](https://www.youtube.com/watch?v=dQw4w9WgXcQ)

You can make an unordered list by preceding one or more lines of text with -.

  • George Washington
  • John Adams
  • Thomas Jefferson
- George Washington
- John Adams
- Thomas Jefferson

To order your list, precede each line with a number.

  1. James Madison
  2. James Monroe
  3. John Quincy Adams
1. James Madison
2. James Monroe
3. John Quincy Adams

To format code or text into its own distinct block, use triple backticks.

function feature() {
  return "It works in my environment.";
}
```tsx
function feature() {
  return "It works in my environment.";
}
```‎

You can create tables by assembling a list of words and dividing them with hyphens - (for the first row), and then separating each column with a pipe |.

First HeaderSecond Header
Content CellContent Cell
Content CellContent Cell
| First Header  | Second Header |
| ------------- | ------------- |
| Content Cell  | Content Cell  |
| Content Cell  | Content Cell  |

You can preview your markdown content in real-time by using the preview feature in the editor. We have been using it throughout this guide to show you how your markdown content will look when rendered. It comes with a single prop, codeblock, that you can use to display the code block right below the preview.

  <div className="bg-red-400 w-32 h-16 rounded"/>
<Preview>
  <div className="bg-gray-2 border-gray-4 border w-32 h-16 rounded"/>
</Preview>

Append {:lang}{:js} (e.g. {:js}{:js}) to the end of inline code to highlight it like a regular code block.

To useEffect or not to useEffect(), that is the question.

This is an array `[1, 2, 3]{:js}` of numbers 1 through 3.

You can embed images, videos, and other media in your markdown content. You can also add captions to your images via the <Image/> component.

Placeholder

Avatar

<Image src='https://avatar.vercel.sh/sylph' alt='Placeholder' caption='Avatar'/>

You can use inline code like const example = "Hello World" within paragraphs.

This is an array `[1, 2, 3]` of numbers 1 through 3.

Our markdown system supports complex nested structures:

  1. First level
    • Nested bullet
    • Another nested bullet
      1. Deep nested number
      2. Another deep nested number
  2. Back to first level
    • More nesting
      • Even deeper nesting
// JavaScript example
class MarkdownRenderer {
  constructor(options = {}) {
    this.options = options;
  }
 
  render(content) {
    return this.processMarkdown(content);
  }
 
  processMarkdown(content) {
    // Complex processing logic
    return content
      .replace(/\*\*(.*?)\*\*/g, '<strong>$1</strong>')
      .replace(/\*(.*?)\*/g, '<em>$1</em>');
  }
}
 
const renderer = new MarkdownRenderer();
console.log(renderer.render("**Bold** and *italic* text"));
# Python example
def fibonacci(n):
    """Generate fibonacci sequence up to n terms."""
    if n <= 0:
        return []
    elif n == 1:
        return [0]
    elif n == 2:
        return [0, 1]
 
    sequence = [0, 1]
    for i in range(2, n):
        sequence.append(sequence[i-1] + sequence[i-2])
 
    return sequence
 
# Usage
print(fibonacci(10))  # [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

This demonstrates that our blog system has complete feature parity with our guides system!

##✅ Proven Compatibility

All the rich MDX features from guides work perfectly in blog posts:

  • Preview Components with live examples
  • Interactive Code Blocks with syntax highlighting
  • Custom Components (<kbd>, <Image>, etc.)
  • Nested MDX Previews
  • Typography System with proper spacing
  • Media Embedding with captions

##🚀 Enhanced Blog Features

Plus additional blog-specific capabilities:

  • 📂 Category Filtering (this post is in "tutorials")
  • 🏷️ Tag Support (markdown, demo, formatting, showcase)
  • 👤 Author Attribution (Demo Author)
  • Featured Posts (this post is featured)
  • ⏱️ Reading Time Estimation
  • 📅 Publication Dates
  • 📊 Analytics Integration

##🎯 Perfect Feature Parity

The blog system extends guides' capabilities while maintaining 100% MDX compatibility. Any content that works in /guides/ will work identically in /posts/ with added blog features!

🎉 Mission Accomplished!

Our blog system successfully renders the same rich content as guides with full MDX support.