MDash
By Mohammad AniniLast Reviewed September 7, 2026

Markdown Guide

A practical reference for the Markdown syntax MDash renders.

Table of Contents

Inline Formatting

GoalSyntaxResult
Bold**text**text
Italic*text*text
Strikethrough~~text~~text
Inline code`code`code
Superscripttext^sup^text^sup^
Subscripttext~sub~textsub
Link[label](https://url)label
Image![alt](src)(renders inline)

Inline-formatting buttons are toggles. Apply the same action to the unchanged selection again to remove its Markdown markers, including Inline Code.

Headings

Markdown Source

# H1
## H2
### H3
#### H4
##### H5
###### H6

Headings get auto-generated id slugs so you can link to them with [label](#slug).

Use the toolbar Heading menu to apply Heading 1 through Heading 6. Applying the active heading again removes it. Choose Paragraph, or press Ctrl/⌘ + Alt + 0, to remove a heading prefix from the selected lines.

Text Alignment

Use the toolbar Text Alignment menu to choose Left, Center, or Right. With no selection, MDash aligns the current paragraph or heading. A text selection expands to complete supported blocks, including a complete list, so its Markdown structure stays intact. An empty line creates an empty wrapper with one blank typing line and places the cursor inside it.

Place the cursor inside aligned content to see its current alignment marked in the menu. Choosing another alignment updates the same wrapper. Remove Alignment appears only while an alignment is active, below a separator. It preserves the content and retains a container if it carries unrelated attributes. Use Undo or Redo to reverse or restore the change.

Alignment controls are available while editing a writable document. They are disabled for read-only documents and Preview-only mode.

Markdown Source

<div align="center">
**Centered text** with `inline code` and [a link](https://example.com).
</div>

Rendered Result

Centered text with inline code and a link.

MDash renders Markdown inside these compact alignment wrappers in Preview, shared documents, and rendered exports. You can still use Bold, links, and other formatting buttons inside the wrapper's text. A whole sentence containing inline code or inline math can be aligned without adding a line break before the code or math.

Safe Editing

Toolbar actions protect the opening and closing tags, including attribute values between < and >. Existing protections for frontmatter, code blocks, math blocks, tables, and other raw HTML still apply. Unsafe selections are rejected without replacing their content; eligible insertions from a cursor in protected content move after that content. A cursor or selection wholly inside an inline code or math span cannot start a new alignment block.

These safeguards apply to editing commands. You can still edit the source manually; keep wrapper tags complete and on their own lines.

Spacing and Compatibility

Alignment uses the HTML align attribute, which is a legacy feature rather than standard Markdown syntax. MDash adds required blank lines to a temporary render copy, leaving your stored source compact and keeping preview scroll anchors tied to the original lines.

Other Markdown viewers may require blank lines after the opening tag and before the closing tag. When sharing Markdown source with another application, use this form and check that application allows HTML alignment:

<div align="center">

**Centered Text**

</div>

Alignment controls where text sits horizontally. It does not change reading direction. For Arabic, Hebrew, or mixed-language writing, use Document Direction in Edit Metadata; see Themes and Direction. Table-column alignment remains part of Insert Table.

Lists

Markdown Source

- bullet
  - nested
  - nested
- bullet

1. first
2. second
3. third

- [ ] task
- [x] done

Rendered Result

  • bullet
    • nested
    • nested
  • bullet
  1. first
  2. second
  3. third
  • task
  • done

Quote, Bullet List, Numbered List, and Task List are toggles. Applying the current action again removes its prefix. Applying a different list action converts the existing marker.

To nest list items, place the caret in an item and press Tab, or select several list-item lines and press Tab to indent them together. Press Shift + Tab to outdent them. After indenting a child item, apply Bullet List, Numbered List, or Task List when you want its style to differ from its parent.

Paragraphs and Line Breaks

Separate paragraphs with a blank line. A normal newline inside a paragraph remains part of the same paragraph. End a line with two spaces when you need an explicit line break without starting a new paragraph.

Indent nested list items consistently. Four spaces are a reliable choice when a list item contains its own paragraph, quote, or code block.

Blockquotes and Callouts

Markdown Source

> A regular blockquote.

> [!NOTE]
> Standard GitHub-style alert.

> [!TIP]
> Use the Insert Alert toolbar dropdown.

> [!WARNING]
> Review the final document before publishing it.

Rendered Result

A regular blockquote.

[!NOTE] Standard GitHub-style alert.

[!TIP] Use the Insert Alert toolbar dropdown.

[!WARNING] Review the final document before publishing it.

MDash supports NOTE, TIP, IMPORTANT, WARNING, and CAUTION alerts. Use the type that best matches the reader's next action, and avoid stacking several alerts when a short section would be easier to scan.

Code Blocks

Use triple backticks with a language hint:

Markdown Source

```python
print("hi")
```

Rendered Result

print("hi")

Highlighting is powered by Shiki and its bundled TextMate grammars. See Code and Syntax Highlighting for examples and the complete language annex.

Choose Insert Code Block to search supported languages, write or paste code, and check a live highlighted preview before inserting the completed fence. Place the cursor inside an existing fenced block to edit it through the same modal.

Emoji and Symbols

Emoji and typographic symbols are ordinary Unicode text:

Markdown Source

- 🚀 Launch
- 🧭 Explore
- ✨ Refine

Plan → Draft → Review
Copyright © 2026

Rendered Result

  • 🚀 Launch
  • 🧭 Explore
  • ✨ Refine

Plan → Draft → Review
Copyright © 2026

Use Insert Emoji and Insert Symbol in the toolbar to search the built-in catalogues.

The emoji picker contains more than 1,100 entries across groups such as smileys, gestures, people, animals, food, travel, activities, objects, office, symbols, and flags. Search with familiar words such as happy, warning, book, or travel.

The symbol picker contains more than 270 punctuation marks, quotes, arrows, mathematical operators, Greek letters, fractions, currencies, marks, shapes, and spacing characters. Search by purpose with terms such as arrow, quote, copyright, check, fraction, or space.

Use Unicode Clearly

Emoji and symbols work in headings, paragraphs, lists, tables, links, presentations, and exports without special Markdown syntax. Their appearance can vary by operating system and font. Some flags may appear as letter pairs on platforms without a matching flag glyph.

Pair visual markers with words when the meaning matters:

Markdown Source

- ✅ Complete
- ⚠️ Needs Review
- ⏳ Waiting

Rendered Result

  • ✅ Complete
  • ⚠️ Needs Review
  • ⏳ Waiting

Do not rely on color or emoji alone. Clear labels help screen readers and remain understandable in monochrome output.

For structured equations, use KaTeX instead of assembling a formula from individual Unicode symbols. A symbol such as ± works well in prose, while fractions, alignment, and full expressions are clearer as math source.

Invisible Spaces and Direction Controls

The symbol picker includes nonbreaking, thin, figure, and zero-width spaces, plus LTR and RTL marks. These can solve a specific line-breaking or mixed-direction problem, but they are invisible in the editor and can make source harder to inspect.

Use them sparingly. For a whole document, prefer the dir frontmatter field or the Direction tab action described in Themes and Direction.

Tables

Create a Basic Table

Markdown Source

| Header | Header |
| --- | --- |
| Cell | Cell |

Rendered Result

HeaderHeader
CellCell

Align Table Columns

Markdown Source

| Aligned Left | Aligned Center | Aligned Right |
| :--- | :---: | ---: |
| Short | Medium-length text | A much longer entry |
| A longer left entry | Brief | Short |

Rendered Result

Aligned LeftAligned CenterAligned Right
ShortMedium-length textA much longer entry
A longer left entryBriefShort

Tables work best for compact structured data. They do not support merged cells. Use a list or headings when a table becomes difficult to read on a narrow screen.

Choose Insert Table to build a table without writing separators by hand. Use the plus controls at the right and bottom edges to add columns and rows. Remove controls appear in column headers and row gutters. You can also set alignment or paste tab-separated spreadsheet data.

Place the cursor inside an existing Markdown table to open Edit Table with its cells and alignments loaded. A new table is inserted as a standalone block after the current paragraph, list, quote, frontmatter, or fenced code block.

Images

Use descriptive alternative text:

Markdown Source

![MDash social card with the logo and product name](/og-image.png)

Rendered Result

MDash social card with the logo and product name

MDash stores the image URL in Markdown. It does not copy a remote image into the vault or ZIP, so the image must remain reachable when the document is viewed later. Avoid embedding private URLs in documents you plan to share.

Markdown Source

Read the [MDash documentation](/docs/) or use a [reference link][docs].

Add a useful aside with a footnote.[^guide-note]

[docs]: /docs/ "MDash Documentation"
[^guide-note]: Footnotes are collected at the bottom of the rendered document.

Rendered Result

Read the MDash documentation or use a reference link.

Add a useful aside with a footnote.1

Use [[Note Name]] for a vault wiki-link. It resolves to another Markdown file and can include an alias such as [[Note Name|visible label]].

The footnotes section renders at the bottom of the preview automatically.

Escaping Markdown

Add a backslash before punctuation when it should remain literal:

Markdown Source

\# Not a heading
\* Not emphasis
\[Not a link\]

Rendered Result

# Not a heading
* Not emphasis
[Not a link]

Use inline code or a fenced code block when showing several lines of Markdown source.

Horizontal Rule

Three dashes on their own line:

Markdown Source

---

Special Markers

MarkerInserts
[[toc]]Auto-generated table of contents (this doc has one above)
[[Note Name]]Wiki-link to a vault file
#hashtagInline tag chip
<time>label</time>Date or time chip

The generated table of contents includes H1 through H4 headings and preserves their explicit ranks, even when a document skips or reverses heading levels. H5 and H6 still receive anchors, but remain outside the contents list. It starts expanded. MDash remembers whether you collapse it while its tab remains open and forgets that choice when you close the tab. If the document has no H1 through H4 headings, [[toc]] renders an empty contents block instead of behaving like a wiki-link.

Markdown Source

Status: #documentation
Reviewed: <time>September 5, 2026</time>

Rendered Result

Status: #documentation

Reviewed:

Choose Date and Time in the toolbar, or run Insert Date and Time from the command palette, to insert a <time> element. Choose Date and Time, Date Only, or Time Only; type an ISO date or use the calendar; adjust the time; and select a format from live examples. Preview matches the visible text, and MDash remembers one format choice for each mode.

A complete <time>...</time> element behaves as one inline item while editing. Place the cursor outside it before applying formatting to the surrounding sentence.

Raw HTML and Safety

MDash accepts useful inline HTML, but sanitizes every preview before inserting it into the page. Scripts, forms, frames, event handlers, and unsafe URLs are removed. Use Markdown syntax whenever it can express the same result.

Task-list checkboxes use the active MDash theme in previews, presentations, and rendered exports. They remain document content rather than interactive controls, so editing the Markdown source is what changes their checked state.

Troubleshooting

  • If a table does not render, confirm that its header separator contains at least three dashes.
  • If a heading link misses its target, inspect the generated heading text and duplicate-heading suffix.
  • If a horizontal line starts a presentation slide unexpectedly, remember that Presentation Mode also uses --- as its slide separator.
  • If Text Alignment rejects a selection, move outside protected tags or code and select the surrounding paragraph. Inline code inside a whole sentence is supported.
  • If an exported Markdown wrapper shows literal formatting in another viewer, add blank lines around its body and check that the viewer permits raw HTML.

Footnotes

  1. Footnotes are collected at the bottom of the rendered document. ↩