Markdown Features
7-min read
Headings URL copied
Headings URL copied
## Headings
My Title URL copied
Hover any heading to reveal its ¶ permalink. Explicit heading IDs are used by both the permalink and the TOC.
### My Title { #server-sent-events-sse }
### Setext Style
Heading Level 1
===============
Heading Level 2
---------------
ATX Style URL copied
Heading Level 1 URL copied
Heading Level 2 URL copied
Heading Level 3 URL copied
Heading Level 4 URL copied
Heading Level 5 URL copied
### ATX Style
# Heading Level 1
## Heading Level 2
### Heading Level 3
#### Heading Level 4
##### Heading Level 5
Paragraphs URL copied
This is a paragraph. It contains multiple sentences to demonstrate how paragraphs work in Markdown.
This is a paragraph. It contains multiple sentences to demonstrate how paragraphs work in Markdown.
Line Breaks URL copied
Soft line break (just press Enter): This is the next line.
Hard line break (use two spaces at the end of the line):
This is the next line.
Soft line break (just press Enter):
This is the next line.
Hard line break (use two spaces at the end of the line):
This is the next line.
Emphasis URL copied
Italics using single asterisks.
Italics using single underscores.
Bold using double asterisks.
Bold using double underscores.
Bold and Italics using triple asterisks.
Bold and Italics using triple underscores.
*Italics* using single asterisks.
_Italics_ using single underscores.
**Bold** using double asterisks.
__Bold__ using double underscores.
***Bold and Italics*** using triple asterisks.
___Bold and Italics___ using triple underscores.
Blockquotes URL copied
This is a blockquote.
Nested blockquote.
> This is a blockquote.
> > Nested blockquote.
Lists URL copied
Ordered List URL copied
- First item
- Second item
- Third item
Unordered List URL copied
- First item
- Second item
- Third item
Nested List URL copied
- Parent item
- Child item
- Grandchild item
- Child item
Task List URL copied
- TaskCompleted task
- TaskIncomplete task
### Ordered List
1. First item
2. Second item
3. Third item
### Unordered List
- First item
- Second item
- Third item
### Nested List
- Parent item
- Child item
- Grandchild item
### Task List
- [x] Completed task
- [ ] Incomplete task
Code URL copied
Inline Code URL copied
Use inline code for short snippets.
Indented Code Block URL copied
def hello_world():
print("Hello, world!")
Fenced Code Block URL copied
def hello_world():
print("Hello, world!")
File Snippet Include URL copied
# Dollar Escape
Plain math:
$E = mc^2$
Escaped dollars:
$5 should render as $5.
this is a $100 phone
this is a \$100 phone
this is a $100-$200 phone
this is a \$100-\$200 phone
`\\$` should render as \\\$.
\\\$ should render as \\\$.
Inline code should stay literal: `\$` and `\\$`.
Fenced code should stay literal:
```### Inline Code
Use `inline code` for short snippets.
### Indented Code Block
def hello_world():
print("Hello, world!")
### Fenced Code Block
```python
def hello_world():
print("Hello, world!")
```
### File Snippet Include
```markdown
{* ../demo/dollar-escape.md ln[1:24] hl[9:11,22] *}
```
Horizontal Rules URL copied
Single rule:
Double rule:
Single rule:
---
Double rule:
---
---
Links URL copied
### Inline Links
[Visit Google](https://www.google.com)
### Reference-Style Links
[Visit Google][google]
[google]: https://www.google.com
### Autolinks
### Relative Links
[Flat Land](../books/flat-land/chapter-01.md)
[Home](/)
[Static Build (Outer Link)](../static-build)
Images URL copied
### Inline Image

### Reference-Style Image
![Another cute cat][image]
[image]: https://cataas.com/cat/cute?width=300&height=300
HTML URL copied
This is bold and this is italic.
This is bold and this is italic.
Strikethrough URL copied
This text is strikethrough.
~~This text is strikethrough.~~
Tables URL copied
| Column 1 | Column 2 | Column 3 |
|---|---|---|
| Row 1 | Data | Data |
| Row 2 | Data | Data |
| Column 1 | Column 2 | Column 3 |
|----------|----------|----------|
| Row 1 | Data | Data |
| Row 2 | Data | Data |
Footnotes URL copied
This is a footnote referenceThis is the footnote text..
Markdown Source:
This is a footnote reference[^1].
[ ^1]: This is the footnote text. (Do not put a space after the opening brackets)
Definition Lists URL copied
Term
: Definition
Term
: Definition
Abbreviations URL copied
The HTML abbreviation is HTML. It stands for HyperText Markup Language.
*[HTML]: HyperText Markup Language
The HTML abbreviation is HTML. It stands for *HyperText Markup Language*.
*[HTML]: HyperText Markup Language
Superscript and Subscript URL copied
E = mc^2^
H~2~O
E = mc^2^
H~2~O
Highlight Text URL copied
==Highlighted text==
==Highlighted text==
Insertion and Deletion URL copied
{++Inserted text++}
{--Deleted text--}
{++Inserted text++}
{--Deleted text--}
Comments URL copied
Emoji URL copied
:smile: :+1: :heart:
:smile: :+1: :heart:
Table of Contents URL copied
[TOC]
[TOC]
Heading IDs URL copied
Custom Heading URL copied
### Custom Heading {#custom-id}
Raw HTML Blocks URL copied
This is red text.
Embedded Media URL copied
### Video
### Audio
### PDF (iframe)
Mathematical Notation URL copied
### Inline Math
$E = mc^2$
### Block Math
$$
\int_a^b f(x) dx = F(b) - F(a)
$$
Escaping Dollar Signs URL copied
@@VYASA_DOLLAR@@5 should render as $5 (not math).
@@VYASA_DOLLAR@@ should render as @@VYASA_DOLLAR@@.
\@@VYASA_DOLLAR@@ should render as \@@VYASA_DOLLAR@@.
### Escaping Dollar Signs
\$5 should render as $5 (not math).
\\$ should render as \\$.
\\\$ should render as \\\$.
Diagrams URL copied
```mermaid
---
width: 65vw
---
gantt
title A Gantt Diagram
dateFormat YYYY-MM-DD
section Section
A task :a1, 2014-01-01, 30d
Another task :after a1 , 20d
section Another
Task in sec :2014-01-12 , 12d
another task : 24d
```
will render to
gantt
title A Gantt Diagram
dateFormat YYYY-MM-DD
section Section
A task :a1, 2014-01-01, 30d
Another task :after a1 , 20d
section Another
Task in sec :2014-01-12 , 12d
another task : 24d
Smart Typography URL copied
"Curly quotes"
-- En-dash
--- Em-dash
"Curly quotes"
-- En-dash
--- Em-dash
Callouts URL copied
This is an informational callout inside the header. It can contain multiple paragraphs, lists, and other markdown elements.
It can even contain markdown elements such as bold, italics
inline code and blocks of code.
def hello():
return "Hello, world!"
If you accidentally commit secrets, use git filter-repo to scrub them from your git history and rotate the compromised credentials immediately.
Can callouts be nested? Click to find out!
Yes. You can nest infinitely
This is a nested callout with code!
def nested_callout():
return "This is a nested callout with code!"
"Documentation is a gift to the future."
> [!info] Header
> This is an informational callout inside the header. It can contain multiple paragraphs, lists, and other markdown elements.
>
> It can even contain markdown elements such as **bold**, *italics*
> `inline code` and blocks of code.
> ```python
> def hello():
> return "Hello, world!"
> ```
> [!warning] Rotate your keys every 90 days.
> [!success] Build completed successfully.
> [!error] Production credentials should never be committed.
> If you accidentally commit secrets, use `git filter-repo` to scrub them from your git history and rotate the compromised credentials immediately.
> [!bug] This parser edge case was fixed with a regression test.
> [!example] Use `hl[9:11,22]` to highlight selected source lines.
> [!faq]- Can callouts be nested? Click to find out!
> > [!todo]- Yes. You can nest infinitely
> > > [!example]- This is a nested callout with code!
> > > ```python
> > > def nested_callout():
> > > return "This is a nested callout with code!"
> > > ```
> [!cite]- "Documentation is a gift to the future."
> > [!note] Good Documentation elevates everyone.
> > [!note] Bad Documentation is worse than no documentation.
Vyasa uses Obsidian-style blockquote callouts. Aliases such as warn, error, faq, help, check, done, summary, tldr, cite, and more are normalized automatically; + opens a foldable callout by default, and - starts it collapsed.
Supported callout families and aliases:
noteabstract:summary,tldrinfotodotip:hint,importantsuccess:check,donequestion:help,faqwarning:warn,caution,attentionfailure:fail,missingdanger:errorbugexamplequote:cite
Custom types like > [!business-case] also render and expose data-callout="business-case" for CSS targeting.
Task lists can also render as richer task cards when you use task-list syntax with pipe-delimited metadata:
- [ ] Write a blog post | author: John Doe | deadline: 2024-12-31 | priority: high | status: in progress | project: Vyasa Blog
Supported task metadata families are:
- person:
owner,author,assignee,person,user,who - deadline:
deadline,due,date,when,eta - priority:
priority,urgency,severity,importance - status:
status,state,phase - project:
project,bucket,area,team,stream
Collapsible Sections URL copied
Click to expand
Hidden content here.
Click to expand
Hidden content here.
Keyboard Input URL copied
Press Ctrl + C to copy.
Press Ctrl + C to copy.
Line Block URL copied
| Roses are red
| Violets are blue
| Roses are red
| Violets are blue
Citation URL copied
This is a citation [@doe2025].
This is a citation [@doe2025].
Page Break URL copied
\pagebreak
\pagebreak
Escaping Characters URL copied
*Not italicized*
\*Not italicized\*
Tabbed Content URL copied
You can create tabbed sections to show multiple versions of content, like code in different languages or rendered output vs source code.
Syntax:
To create tabs, use the following markdown syntax:
:::tabs
::tab{title="Python"}
```python
def greet(name):
return f"Hello, {name}!"
print(greet("World"))
```
::tab{title="JavaScript"}
```javascript
function greet(name) {
return `Hello, ${name}!`;
}
console.log(greet("World"));
```
::tab{title="Output"}
```
Hello, World!
```
:::
Example:
def greet(name):
return f"Hello, {name}!"
print(greet("World"))
function greet(name) {
return `Hello, ${name}!`;
}
console.log(greet("World"));
Hello, World!
Cascading Folder-Specific CSS URL copied
To apply folder-specific CSS styles that cascade down to all subfolders, you can place a custom.css file in any directory. The styles defined in this file will automatically apply to all markdown files within that directory and its subdirectories.
Example:
hello
`hello`{.highlight}
/* custom.css in the folder */
span.highlight {
background-color: #fff831;
padding: 0 4px;
border-radius: 3px;
font-weight: bold;
font-family: 'Courier New', Courier, monospace;
font-size: 2rem;
}