Markdown Reference

This page lists the markdown Monofile renders. The same rules apply in the editor, in a share link, in an embed, and on these documentation pages. A small set of designed blocks (titled code, tabs, callouts, steps and cards) sits on top of this syntax. Rich Markdown documents them.

Headings

All six levels work, # through ######.

markdown
# Page title
## Section
### Subsection

Text formatting

SyntaxResult
**bold** or __bold__bold
*italic* or _italic_italic
~~strike~~struck through
`code`inline code

Monofile normalizes the spelling on save. __bold__ comes back as **bold** and _italic_ as *italic*. The meaning is identical. The original characters are not kept.

markdown
An [inline link](https://monofile.ai) and a bare URL like https://monofile.ai.

A [reference link][home] also works.

[home]: https://monofile.ai

Bare URLs become links automatically. Reference-style links render, but the next save rewrites them as inline links and drops link titles ([x](url "title")).

To link to another file in your workspace, write a wiki-link instead of a URL. See Wiki-Links.

Lists

markdown
- a bullet
- another bullet
  - nested one level

1. first
2. second

Bullets accept -, * or +, and all three save as -. Ordered lists keep their starting number, so a list that begins at 3. stays at 3.. Indentation nests, and the two kinds mix, so a bullet list can sit inside a numbered item.

Task lists

markdown
- [ ] not done yet
- [x] done

Tick a checkbox in the editor and the file changes to - [x]. - [X] is accepted on the way in and saved as lowercase.

Tables

Pipe tables with a header row.

markdown
| Field | Type | Required |
|---|---|---|
| `name` | string | yes |
| `count` | number | no |

Cells take inline formatting, inline code, links and wiki-links. Column alignment markers such as |:---:| render, but the file comes back with plain --- separators. In the editor, drag a column border to resize it, and press Tab to move to the next cell. Tab in the last cell adds a row.

Code blocks

Fence with three backticks or three tildes, and add a language for syntax highlighting. The highlighting follows your editor theme.

markdown
```ts
const total = items.reduce((a, b) => a + b, 0)
```

A fence with no language renders as plain monospaced text. A block indented by four spaces also becomes a code block, without a language.

Mermaid diagrams

A fence tagged mermaid renders as a diagram.

See Diagrams for the diagram types, how failures are shown, and how to turn a diagram into an editable drawing.

Blockquotes

markdown
> A quote.
>
> > A quote inside a quote.

Nesting works. A quote whose first line is [!NOTE], [!TIP], [!IMPORTANT], [!WARNING] or [!CAUTION] renders as a callout, in the editor and everywhere a file is shown. The rest of the designed blocks (titled code, tabs, steps, cards) are on Rich Markdown.

Images

markdown
![A diagram of the pipeline](https://example.com/pipeline.png)

The HTML form also works, and it is how a resized image is stored: <img src="..." width="400">. Drag an image file into the editor and Monofile uploads it and inserts the markdown. See Uploads and Media.

Horizontal rules

---, *** and ___ all render as a divider and are all saved as ---.

Line breaks

A single newline inside a paragraph renders as a line break. This differs from strict markdown, which collapses it to a space.

markdown
Line one
Line two

That renders as two lines. A blank line still starts a new paragraph. Two trailing spaces and a literal <br> also produce a line break.

Frontmatter

A YAML block at the top of the file is frontmatter. The editor shows it as its own block and preserves it exactly on save.

markdown
---
title: Release notes
tags: [changelog, v2]
---

What does not render

Monofile parses a defined set of syntax. Anything outside it stays in your file as literal text.

SyntaxWhat happens
$x^2$ and $$...$$ mathTyped as text, it stays text. In the editor, /math inserts a KaTeX block that saves as $$...$$. These docs pages do not render math
==highlight==, H~2~O, 2^10^Left as literal text
Definition lists (Term then : value)Left as literal text
Block-level HTML (<div>, <details>)The tags are dropped and only the text inside survives. For a collapsible section use :::details Title from Rich Markdown
Inline HTML (<b>, <em>, <u>, <br>, <img>, <kbd>)Converted to the matching formatting
An HTML <table>Converted to a real table, without a header row

Next steps

  • Rich MarkdownTitled code, tabs, callouts, details, steps, cards, prompts and more: plain markdown that renders designed everywhere.

  • The Markdown EditorLive WYSIWYG editing, slash commands, and how saving works.

  • Wiki-LinksLinks between files: autocomplete, aliases, and links that survive renames.

  • DiagramsMermaid in markdown, and turning mermaid into an editable drawing.

  • Themes and AppearanceTheme families, light and dark modes, and importing VS Code or base16 themes.

796 words