Markdown Syntax

Marque supports standard Markdown syntax for content formatting, plus a set of extended syntax elements for tables, code highlighting, task lists, and more. Use the summary panel to jump to any element.

Basic vs. Extended

Basic syntax is supported by nearly all Markdown processors. Extended syntax requires processor support — Marque supports all elements listed on this page.

Basic Syntax

Headings

syntax output
# H1 through ###### H6 <h1> through <h6>
=== underline heading level 1
--- underline heading level 2
Hash syntax

Heading 1

Heading 2

Heading 3

Heading 4

Heading 5
Heading 6
#* Heading 1
##* Heading 2
###* Heading 3
####* Heading 4
#####* Heading 5
######* Heading 6
Alternate underline syntax

Heading level 1

Heading level 2

Heading level 1
===============*

Heading level 2
---------------*

Always put a space between # and the heading text. Put blank lines before and after headings for compatibility.


Paragraphs

syntax output
blank line between text new <p> paragraph
two trailing spaces + return <br> line break
Paragraphs

This is the first paragraph.

This is the second paragraph.

This is the first paragraph.

This is the second paragraph.
Line breaks

First line with two trailing spaces.
Second line.

First line with two trailing spaces.  
Second line.

Don't indent paragraphs with tabs or spaces — this can cause unexpected formatting.


Emphasis

syntax output
**text** or __text__ bold
*text* or _text_ italic
***text*** bold and italic
  • **bold**bold
  • *italic*italic
  • ***bold and italic***bold and italic
  • Love**is**bold → Loveisbold
- `**bold**` → **bold**
- `*italic*` → *italic*
- `***bold and italic***` → ***bold and italic***
- `Love**is**bold` → Love**is**bold

For mid-word emphasis, use asterisks (*) not underscores — behavior with underscores varies between processors.


Blockquotes

syntax output
> text blockquote
> on blank line paragraph break within blockquote
>> text nested blockquote

This is a blockquote.

Multi-paragraph blockquote, first paragraph.

Second paragraph.

Outer level

Nested level

> This is a blockquote.

> Multi-paragraph blockquote, first paragraph.
>
> Second paragraph.

> Outer level
>
>> Nested level

Lists

syntax output
1. prefix ordered list
-, *, or + prefix unordered list
indent by 2–4 spaces nested list
Ordered list
  1. First item
  2. Second item
  3. Third item
    1. Indented item
    2. Another indented item
  4. Fourth item
1. First item
2. Second item
3. Third item
   1. Indented item
   2. Another indented item
4. Fourth item
Unordered list
  • First item
  • Second item
    • Nested item
    • Another nested item
  • Third item
- First item
- Second item
  - Nested item
  - Another nested item
- Third item

Use periods (.) not parentheses for ordered lists. Stick to one marker type (-, *, or +) per unordered list.


Code

syntax output
`code` inline code
``` fence fenced code block
4 spaces indent indented code block
``` lang syntax highlighted block
Inline code

Use the print() function to output text.

Use the `print()` function to output text.
Code block
py
if __name__ == "__main__":
    print("Hello, World!")
```py
if __name__ == "__main__":
    print("Hello, World!")
```

Links

syntax output
[label](url) inline link
[label](url "title") link with tooltip
[label][ref] + [ref]: url reference-style link
<url> auto-linked URL
[__Visit Google__](__https://www.google.com__)

[__Hover for a title__](__https://www.google.com__ "I'm a tooltip!")

Images

syntax output
![alt](url) inline image
![alt][ref] reference-style image

A placeholder image

![A placeholder image](__https://placehold.co/600x200__)

Horizontal Rules

syntax output
--- <hr>
*** <hr>
___ <hr>

Above the rule.


Below the rule.

Above the rule.

---

Below the rule.

Put blank lines before and after horizontal rules to avoid them being interpreted as heading underlines.


Escaping

Prefix any special character with a backslash (\) to render it literally.

characters you can escape
\ ` * _ {} [] () # + - . ! |

* This is not italic *

# This is not a heading

\* This is not italic \*

\# This is not a heading

Extended Syntax

Tables

syntax description
| pipes column separators
--- header row separator
:--- left-align column
:---: center-align column
---: right-align column
Basic table
Name Role Status
Alice Engineer Active
Bob Designer Active
Carol Manager Away
| Name | Role | Status |
| --- | --- | --- |
| Alice | Engineer | Active |
| Bob | Designer | Active |
| Carol | Manager | Away |
Aligned columns
Left Center Right
apples bananas cherries
one two three
| Left | Center | Right |
| :--- | :---: | ---: |
| apples | bananas | cherries |
| one | two | three |

Tables support inline formatting: bold, italic, inline code, and links. Headings, block elements, and images inside cells are not supported.


Syntax Highlighting

Add a language identifier after the opening fence to enable syntax highlighting.

common identifiers
js ts py html css json md bash sql yaml
js
function greet(name) {
  return `Hello, ${name}!`;
}
```js
function greet(name) {
  return `Hello, ${name}!`;
}
```
json
{
  "name": "Marque",
  "version": "1.0.0",
  "description": "A Markdown-based site builder"
}
```json
{
  "name": "Marque",
  "version": "1.0.0",
  "description": "A Markdown-based site builder"
}
```

Strikethrough

syntax output
~~text~~ strikethrough

The world is flat. We now know that the world is round.

~~The world is flat.~~ We now know that the world is round.

Task Lists

syntax output
- [ ] task unchecked checkbox
- [x] task checked checkbox
  • Write the docs
  • Add syntax highlighting
  • Add dark mode
  • Publish v1.0
- [x] Write the docs
- [x] Add syntax highlighting
- [ ] Add dark mode
- [ ] Publish v1.0

Footnotes

syntax description
[^1] inline footnote reference
[^1]: text footnote definition (anywhere in doc)
[^label] word-based identifier

Here's a sentence with a footnote.[^1]

And one with a named reference.[^note]

[^1]: This is the first footnote.
[^note]: Named footnotes work too.

Here's a sentence with a footnote.[^1]

And one with a named reference.[^note]

[^1]: This is the first footnote.
[^note]: Named footnotes work too.

Heading IDs

syntax description
## Title {#custom-id} custom anchor ID on a heading
[link](#custom-id) link to that anchor

My Section {#my-section}

Jump to My Section

### My Section {#my-section}

[Jump to My Section](#my-section)

Highlight

syntax output
==text== highlighted text

I need to highlight these ==very important words==.

I need to highlight these ==very important words==.

Subscript and Superscript

syntax output example
~text~ subscript H2O
^text^ superscript X^2^

H2O is the chemical formula for water.

$E = mc^2$ is Einstein's most famous equation.

H~2~O is the chemical formula for water.

$E = mc^2$ is Einstein's most famous equation.

Automatic URL Linking

Most Markdown processors will auto-link bare URLs. Wrap in backticks to prevent linking.

https://www.marque.dev

https://www.marque.dev — not linked

https://www.marque.dev

`https://www.marque.dev` — not linked

Best Practices

  • Leave blank lines before and after block elements (headings, lists, blockquotes, code blocks)
  • Don't indent paragraphs with spaces or tabs
  • Use * for emphasis rather than _ for mid-word compatibility
  • Use - consistently as your unordered list marker
  • Use periods (.) not parentheses for ordered lists
  • Always add a space after # in headings
  • Prefer fenced code blocks (```) over indented ones