Markdown Features

Present

7-min read

Copied Raw Markdown!

HeadingsURL copied

HeadingsURL copied

Copied
## Headings

My TitleURL copied

Hover any heading to reveal its permalink. Explicit heading IDs are used by both the permalink and the TOC.

Copied
### My Title { #server-sent-events-sse }

Setext StyleURL copied

Heading Level 1URL copied

Heading Level 2URL copied

Copied
### Setext Style
Heading Level 1
===============
Heading Level 2
---------------

ATX StyleURL copied

Heading Level 1URL copied

Heading Level 2URL copied

Heading Level 3URL copied

Heading Level 4URL copied

Heading Level 5URL copied
Copied
### ATX Style
# Heading Level 1
## Heading Level 2
### Heading Level 3
#### Heading Level 4
##### Heading Level 5

ParagraphsURL copied

This is a paragraph. It contains multiple sentences to demonstrate how paragraphs work in Markdown.

Copied
This is a paragraph. It contains multiple sentences to demonstrate how paragraphs work in Markdown.

Line BreaksURL 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.

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.

EmphasisURL 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.

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.

BlockquotesURL copied

This is a blockquote.

Nested blockquote.

Copied
> This is a blockquote.
> > Nested blockquote.

ListsURL copied

Ordered ListURL copied

  1. First item
  2. Second item
  3. Third item

Unordered ListURL copied

  • First item
  • Second item
  • Third item

Nested ListURL copied

  • Parent item
    • Child item
      • Grandchild item

Task ListURL copied

  • Task
    Completed task
  • Task
    Incomplete task
Copied
### 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

CodeURL copied

Inline CodeURL copied

Use inline code for short snippets.

Indented Code BlockURL copied

Copied
def hello_world():
    print("Hello, world!")

Fenced Code BlockURL copied

Copied
def hello_world():
    print("Hello, world!")

File Snippet IncludeURL 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:

```
`ln[start:end]` slices the source file by 1-based line numbers. `hl[...]` highlights original source lines, so `hl[9:11,22]` highlights lines 9 through 11 and line 22 in the rendered snippet.
Copied
### 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 RulesURL copied

Single rule:

Double rule:

Copied
Single rule:

---

Double rule:

---
---
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)

ImagesURL copied

Inline ImageURL copied

A cute cat

Reference-Style ImageURL copied

Another cute cat

Copied
### Inline Image

![A cute cat](https://cataas.com/cat?width=300&height=300)

### Reference-Style Image

![Another cute cat][image]

[image]: https://cataas.com/cat/cute?width=300&height=300

HTMLURL copied

This is bold and this is italic.

Copied
This is bold and this is italic.

StrikethroughURL copied

This text is strikethrough.

Copied
~~This text is strikethrough.~~

TablesURL copied

Column 1 Column 2 Column 3
Row 1 Data Data
Row 2 Data Data
Copied
| Column 1 | Column 2 | Column 3 |
|----------|----------|----------|
| Row 1    | Data     | Data     |
| Row 2    | Data     | Data     |

FootnotesURL copied

This is a footnote referenceThis is the footnote text..

Markdown Source:

Copied
This is a footnote reference[^1].

[ ^1]: This is the footnote text. (Do not put a space after the opening brackets)

Definition ListsURL copied

Term
: Definition

Copied
Term  
: Definition

AbbreviationsURL copied

The HTML abbreviation is HTML. It stands for HyperText Markup Language.

*[HTML]: HyperText Markup Language

Copied
The HTML abbreviation is HTML. It stands for *HyperText Markup Language*.

*[HTML]: HyperText Markup Language

Superscript and SubscriptURL copied

E = mc^2^
H~2~O

Copied
E = mc^2^  
H~2~O

Highlight TextURL copied

==Highlighted text==

Copied
==Highlighted text==

Insertion and DeletionURL copied

{++Inserted text++}
{--Deleted text--}

Copied
{++Inserted text++}  
{--Deleted text--}

CommentsURL copied

Copied

EmojiURL copied

:smile: :+1: :heart:

Copied
:smile: :+1: :heart:

Table of ContentsURL copied

[TOC]

Copied
[TOC]

Heading IDsURL copied

Custom HeadingURL copied

Copied
### Custom Heading {#custom-id}

Raw HTML BlocksURL copied

This is red text.
Copied
This is red text.

Embedded MediaURL copied

VideoURL copied

AudioURL copied

PDF (iframe)URL copied

Copied
### Video



### Audio



### PDF (iframe)


Mathematical NotationURL copied

Inline MathURL copied

$E = mc^2$

Block MathURL copied

$$ \int_a^b f(x) dx = F(b) - F(a) $$

Copied
### Inline Math

$E = mc^2$

### Block Math

$$
\int_a^b f(x) dx = F(b) - F(a)
$$

Escaping Dollar SignsURL copied

@@VYASA_DOLLAR@@5 should render as $5 (not math).

@@VYASA_DOLLAR@@ should render as @@VYASA_DOLLAR@@.

\@@VYASA_DOLLAR@@ should render as \@@VYASA_DOLLAR@@.

Copied
### Escaping Dollar Signs

\$5 should render as $5 (not math).

\\$ should render as \\$.

\\\$ should render as \\\$.

DiagramsURL copied

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 TypographyURL copied

"Curly quotes"
-- En-dash
--- Em-dash

Copied
"Curly quotes"  
-- En-dash  
--- Em-dash

CalloutsURL copied

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.

Copied
def hello():
    return "Hello, world!"
Rotate your keys every 90 days.
Build completed successfully.
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.

This parser edge case was fixed with a regression test.
Use `hl[9:11,22]` to highlight selected source lines.
Can callouts be nested? Click to find out!
Yes. You can nest infinitely
This is a nested callout with code!
Copied
def nested_callout():
    return "This is a nested callout with code!"
"Documentation is a gift to the future."
Good Documentation elevates everyone.
Bad Documentation is worse than no documentation.
Copied
> [!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:

  • note
  • abstract: summary, tldr
  • info
  • todo
  • tip: hint, important
  • success: check, done
  • question: help, faq
  • warning: warn, caution, attention
  • failure: fail, missing
  • danger: error
  • bug
  • example
  • quote: 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:

Copied
- [ ] 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 SectionsURL copied

Click to expand

Hidden content here.

Copied
Click to expand Hidden content here.

Keyboard InputURL copied

Press Ctrl + C to copy.

Copied
Press Ctrl + C to copy.

Line BlockURL copied

| Roses are red
| Violets are blue

Copied
| Roses are red  
| Violets are blue

CitationURL copied

This is a citation [@doe2025].

Copied
This is a citation [@doe2025].

Page BreakURL copied

\pagebreak

Copied
\pagebreak

Escaping CharactersURL copied

*Not italicized*

Copied
\*Not italicized\*

Tabbed ContentURL 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:

Copied
:::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:

Copied
def greet(name):
    return f"Hello, {name}!"

print(greet("World"))
Copied
function greet(name) {
    return `Hello, ${name}!`;
}

console.log(greet("World"));
Copied
Hello, World!

Cascading Folder-Specific CSSURL 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

Copied
`hello`{.highlight}
Copied
/* 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;
}