# Obsidian Syntax Compatibility Test
This file is a fixture for checking how completely the app's markdown pipeline supports the official Obsidian syntax. It mirrors the three source documents:
- [Basic formatting syntax](https://obsidian.md/help/syntax)
- [Advanced formatting syntax](https://obsidian.md/help/advanced-syntax)
- [Obsidian Flavored Markdown](https://obsidian.md/help/obsidian-flavored-markdown)
Each section contains **live content** (actual syntax so a renderer demonstrates support) followed by a displayed source example.
Dialect legend:
- **CM** = CommonMark
- **GFM** = GitHub Flavored Markdown
- **OFM** = Obsidian Flavored Markdown (Obsidian-only extension)
## Coverage checklist
Mark each row as `pass` / `fail` / `n/a` after rendering this file through the pipeline.
| # | Feature | Syntax | Dialect | Status |
|---|---------|--------|---------|--------|
| 1.1 | ATX headings | `#` to `######` | CM | ☐ |
| 1.2 | Setext headings | `===` / `---` | CM | ☐ |
| 1.3 | Bold | `**text**`, `__text__` | CM | ☐ |
| 1.4 | Italic | `*text*`, `_text_` | CM | ☐ |
| 1.5 | Bold + nested italic | `**text _nested_ text**` | CM | ☐ |
| 1.6 | Bold + italic | `***text***`, `___text___` | CM | ☐ |
| 1.7 | Strikethrough | `~~text~~` | GFM | ☐ |
| 1.8 | Highlight | `==text==` | OFM | ☐ |
| 1.9 | Escaping | `\*literal\*` | CM | ☐ |
| 1.10 | Line breaks | trailing ` ` or backslash | CM | ☐ |
| 1.11 | Internal links (wikilinks) | `[[Note]]` | OFM | ☐ |
| 1.12 | Wikilink alias | `[[Note|alias]]` | OFM | ☐ |
| 1.13 | Heading link | `[[Note#Heading]]` | OFM | ☐ |
| 1.14 | Block link | `[[Note#^block-id]]` | OFM | ☐ |
| 1.15 | External links | `[text](url)` | CM | ☐ |
| 1.16 | Link spaces escaped | `%20` / `< >` | CM | ☐ |
| 1.17 | Obsidian URI | `obsidian://open?...` | OFM | ☐ |
| 1.18 | Images (external) | `` | CM | ☐ |
| 1.19 | Image resize | `` | OFM | ☐ |
| 1.20 | Blockquotes | `> text` | CM | ☐ |
| 1.21 | Unordered lists | `-`, `*`, `+` | CM | ☐ |
| 1.22 | Ordered lists | `1.` and `1)` | CM | ☐ |
| 1.23 | Task lists | `- [ ]`, `- [x]` | GFM | ☐ |
| 1.24 | Nested / mixed lists | indented | CM | ☐ |
| 1.25 | Horizontal rules | `***`, `---`, `___` | CM | ☐ |
| 1.26 | Inline code | `` `code` `` | CM | ☐ |
| 1.27 | Fenced code | ```` ``` ```` / `~~~` | CM | ☐ |
| 1.28 | Indented code | 4 spaces / Tab | CM | ☐ |
| 1.29 | Code language | ```` ```js ```` | CM | ☐ |
| 1.30 | Nested code fences | 4+ backticks | CM | ☐ |
| 1.31 | Footnotes | `[^1]` | CM | ☐ |
| 1.32 | Inline footnote | `^[text]` | CM | ☐ |
| 1.33 | Comments | `%%text%%` | OFM | ☐ |
| 1.34 | Tags | `#tag`, `#parent/child` | OFM | ☐ |
| 1.35 | Autolinks | `
| 2.1 | Embeds (note) | `![[Note]]` | OFM | ☐ |
| 2.2 | Embeds (heading) | `![[Note#Heading]]` | OFM | ☐ |
| 2.3 | Block references | `^block-id` | OFM | ☐ |
| 2.4 | Properties / frontmatter | YAML `---` block | CM | ☐ |
| 2.5 | Directory links | `[[Folder/Note]]` | OFM | ☐ |
| 2.6 | HTML passthrough | `` etc. | CM | ☐ |
| 3.1 | Tables | pipe tables | GFM | ☐ |
| 3.2 | Table alignment | `:--` `:--:` `--:` | GFM | ☐ |
| 3.3 | Styled content in tables | links / `**bold**` / embeds | GFM | ☐ |
| 3.4 | Escaped pipes in tables | `\|` | GFM | ☐ |
| 3.5 | Mermaid diagrams | ```` ```mermaid ```` | OFM | ☐ |
| 3.6 | Math (inline) | `$...$` | OFM | ☐ |
| 3.7 | Math (block) | `$$...$$` | OFM | ☐ |
| 4.1 | Callouts (basic) | `> [!note]` | OFM | ☐ |
| 4.2 | Callout titles / custom titles | `> [!tip] Title` | OFM | ☐ |
| 4.3 | Foldable callouts | `> [!faq]-` / `[!info]+` | OFM | ☐ |
| 4.4 | Nested callouts | `>> [!todo]` | OFM | ☐ |
---
## 1. Basic formatting syntax
### 1.1 ATX headings
# Heading 1
## Heading 2
### Heading 3
#### Heading 4
##### Heading 5
###### Heading 6
####### This is NOT a heading (seven hashes)
### 1.2 Setext headings
Setext headings (heading level 1 and 2 only).
Setext Heading 1
=================
Setext Heading 2
-----------------
### 1.3 Bold
**Bold text** and __also bold text__.
### 1.4 Italic
*Italic text* and _also italic text_.
### 1.5 Bold and nested italic
**Bold text and _nested italic_ text** — nested italic stays italic inside bold.
### 1.6 Bold and italic
***Bold and italic text*** and ___bold and italic text___.
### 1.7 Strikethrough (GFM)
~~Striked out text~~ stays struck through.
### 1.8 Highlight (Obsidian-only)
==Highlighted text== renders highlighted.
### 1.9 Escaping markdown syntax
\*\*This line will not be bold.**
\*This line will not be italic.*
`\#` escaped hash: \#not-a-heading
### 1.10 Line breaks
Two trailing spaces at the end of a line start a hard break:
next line, still same paragraph.
Or a backslash at line end: \
also a hard break.
### 1.11 Internal links
Wikilink format: [[Three laws of motion]]
Markdown format: [Three laws of motion](Three%20laws%20of%20motion.md)
### 1.12 Wikilink aliases
[[Three laws of motion|The 3 laws]]
### 1.13 Link to a heading
Link to heading in the same note: [[#Internal links]]
Link to a heading in another note: [[About Obsidian#Links are first-class citizens]]
Link to subheadings with multiple hashes: [[Help and support#Questions and advice#Report bugs and request features]]
### 1.14 Link to a block
This paragraph is a block we link to from another note. ^block-reference-example
Link to a block: [[2023-01-01#^block-reference-example]]
### 1.15 External links
[Obsidian Help](https://help.obsidian.md)
### 1.16 Escape blank spaces in links
[My Note](obsidian://open?vault=MainVault&file=My%20Note.md)
Escaped URL wrapped in angle brackets: [My Note](\
### 1.17 Obsidian URI
[Note](obsidian://open?vault=MainVault&file=Note.md)
### 1.18 External images

### 1.19 Image resize (Obsidian-only)
Width and height: 
Width only (aspect preserved): 
### 1.20 Blockquotes
> Human beings face ever more complex and urgent problems, and their effectiveness in dealing with these problems is a matter that is critical to the stability and continued progress of society.
> \- Doug Engelbart, 1961
### 1.21 Unordered lists
- First list item
- Second list item
- Third list item
* Asterisk items
* Also valid
+ Plus items
+ Also valid
### 1.22 Ordered lists
1. First list item
2. Second list item
3. Third list item
Ordered list with parentheses:
1) First list item
2) Second list item
3) Third list item
A line break inside an ordered list item without breaking the numbering:
1. First list item
2. Second list item
shift-enter line break inside item
3. Third list item
### 1.23 Task lists (GFM)
- [x] This is a completed task.
- [ ] This is an incomplete task.
Custom markers considered complete:
- [x] Milk
- [?] Eggs
- [-] Eggs
### 1.24 Nested and mixed lists
Mixed ordered and unordered nesting:
1. First list item
1. Ordered nested list item
2. Second list item
- Unordered nested list item
Nested task list:
- [ ] Task item 1
- [ ] Subtask 1
- [ ] Task item 2
- [x] Subtask 2
### 1.25 Horizontal rules
Three or more dashed lines, stars, or underscores, optionally spaced.
---
***
___
* * *
--- ---
### 1.26 Inline code
Text inside `backticks` on a line will be formatted like code.
Backticks inside inline code use double backticks: inline ``code with a backtick ` inside``.
### 1.27 Fenced code blocks
Backtick fence:
```text
cd ~/Desktop
```
Tilde fence:
~~~text
cd ~/Desktop
~~~
### 1.28 Indented code blocks
cd ~/Desktop
Alternatively indented with Tab.
### 1.29 Code blocks with language
```js
function fancyAlert(arg) {
if (arg) {
$.facebox({ div: "#foo" });
}
}
```
### 1.30 Nested code fences
Fence with four backticks wraps a three-backtick fence:
````markdown
```js
console.log("Hello world");
```
````
### 1.31 Footnotes (CM)
Here is a sentence with a footnote reference.[^1]
[^1]: And here is the footnote definition.
### 1.32 Inline footnotes
Here is an inline footnote reference.^[This is the footnote text, no definition line needed.]
### 1.33 Comments (Obsidian-only)
This text is visible. %%This text is a comment, hidden in Reading view and Live Preview.%%
### 1.34 Tags (Obsidian-only)
Inline tag: #project/active
Nested tag: #projects/active/2026
### 1.35 Autolinks (GFM)
Check if
Bare URL autolink literal: https://obsidian.md
---
## 2. Obsidian Flavored Markdown extensions
### 2.1 Embeds
Embed a note: ![[Pride_flag.jpg]]
Embed a section: ![[About Obsidian#Links are first-class citizens]]
Embed an image with a resize pipe inside a wikilink: ![[Pride_flag.jpg|100]]
### 2.2 Block references
Define a block with a human-readable ID at end of a line.
"You do not rise to the level of your goals. You fall to the level of your systems." by James Clear ^quote-of-the-day
Link to it: [[2023-01-01#^quote-of-the-day]]
Embed a block: ![[2023-01-01#^quote-of-the-day]]
Block IDs on a structured block (listed on a separate line, blank line before and after):
> A quoted paragraph that is a linkable block.
^structured-block-id
This is the tale of Gemmy, the Unhelpful assistant.
### 2.3 Properties (YAML frontmatter)
Must be the very first thing in a note (shown here in a code block since this fixture has a heading above):
```yaml
---
title: My Note
date: 2026-09-10
tags:
- pkm
- projects/active
aliases:
- The 3 laws
cssclasses:
- wide
---
```
### 2.4 Directory links
[[Projects/Three laws of motion]]
[Three laws of motion](Projects/Three%20laws%20of%20motion.md)
### 2.5 HTML passthrough (Obsidian does NOT render markdown inside HTML)
``This **will not** be bold either`
---
## 3. Advanced formatting syntax
### 3.1 Tables
| First name | Last name |
| ---------- | --------- |
| Max | Planck |
| Marie | Curie |
Table without outer pipes:
First name | Last name
-- | --
Max | Planck
Marie | Curie
### 3.2 Table column alignment
| Left-aligned | Center-aligned | Right-aligned |
| :-- | :--: | --: |
| Content | Content | Content |
### 3.3 Formatting content inside tables
| First column | Second column |
| ------------------ | --------------------------------------- |
| [[Internal links]] | Link to a file _within_ your **vault**. |
| Emphasized | ~~strikethrough~~ and ==highlight== |
### 3.4 Escaped pipes and aliases in tables
| First column | Second column |
| -- | -- |
| Wikilink with alias, needs escaped pipe: `[[Basic formatting syntax\|Markdown syntax]]` | Resized image: `![[Pride_flag.jpg\|200]]` |
### 3.5 Mermaid diagrams
```mermaid
graph TD
Biology --> Chemistry
```
```mermaid
sequenceDiagram
Alice->>+John: Hello John, how are you?
Alice->>+John: John, can you hear me?
John-->>-Alice: Hi Alice, I can hear you!
John-->>-Alice: I feel great!
```
Mermaid diagram with Obsidian internal-link classes:
```mermaid
graph TD
Biology --> Chemistry
class Biology,Chemistry internal-link;
```
### 3.6 Inline math
This is an inline math expression: $e^{2i\pi} = 1$.
Also inline: $x^2 + y^2 = z^2$
### 3.7 Block math
$$E = mc^2$$
$$
\begin{vmatrix}a & b\\ c & d \end{vmatrix}=ad-bc
$$
---
## 4. Callouts (Obsidian-only)
### 4.1 Basic callout
> [!info]
> Here is a callout block. It supports **Markdown**, [[Internal link|Wikilinks]], and embeds.
### 4.2 Custom title and title-only callouts
> [!tip] Callouts can have custom titles
> Like this one.
> [!tip] Title-only callout
### 4.3 Foldable callouts
Folded by default (minus):
> [!faq]- Are callouts foldable?
> Yes! In a foldable callout the contents are hidden when collapsed.
Expanded but foldable (plus):
> [!info]+ This one starts expanded
> It can still be collapsed.
### 4.4 Nested callouts
> [!question] Can callouts be nested?
>
> > [!todo] Yes, they can.
> >
> > > [!example] You can even use multiple layers of nesting.
### 4.5 All supported callout types
> [!note] Note
Aliases: `summary`, `tldr`
> [!abstract] Abstract
> [!info] Info
> [!todo] Todo
> [!tip] Tip
Aliases: `hint`, `important`
> [!success] Success
Aliases: `check`, `done`
> [!question] Question
Aliases: `help`, `faq`
> [!warning] Warning
Aliases: `caution`, `attention`
> [!failure] Failure
Aliases: `fail`, `missing`
> [!danger] Danger
Alias: `error`
> [!bug] Bug
> [!example] Example
> [!quote] Quote
Alias: `cite`
---
## 5. Edge cases worth verifying
- Escaped wikilink: \[[This is not a wikilink]] — the backslash should suppress the link.
- A lone `#` inside a line is not a heading: This is `#` a hash inside a word like C# code.
- Emoji and unicode in headings: ## Emoji 🎉 and accented characters é è à
- A wikilink inside a code block should NOT resolve: `[[Not a real link]]`.
- A wikilink inside inline code: [[Also not a real link]]
- Link followed by punctuation: see [[Three laws of motion]].
- Empty table cell: | A | B |
| --- | --- |
| | value |
- Markdown link with anchors: [Section name](Example.md#Details)
---
## Coverage summary
Fill in the results and total up the columns:
- **CommonMark features passing:** ___ / ___
- **GFM features passing:** ___ / ___
- **Obsidian-only features passing:** ___ / ___
List the failing features below:
- [ ] Failing feature 1
- [ ] Failing feature 2