Obsidian markdown
Write correct Obsidian Flavored Markdown: wikilinks, embeds, callouts, properties, tags, highlights, math, and canvas syntax. Reference this when creating or editing any wiki page. Triggers on: write obsidian note, obsidian syntax, wikilink, callout, embed, obsidian markdown, wikilink format, callout syntax, embed syntax, obsidian formatting, how to write obsidian markdown.From its SKILL.md
npx -y skills add eliransu/digital-brain --skill obsidian-markdownAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.6 KB, ~1.5k tokens by cl100k_base, as published. Nobody here has run it
obsidian-markdown: Obsidian Flavored Markdown
Reference this skill when writing any wiki page. Obsidian extends standard Markdown with wikilinks, embeds, callouts, and properties. Getting syntax wrong causes broken links, invisible callouts, or malformed frontmatter.
Cross-reference: If the kepano/obsidian-skills plugin is installed, prefer its canonical obsidian-markdown skill for authoritative Obsidian syntax reference. Otherwise, use the reference below. See also github.com/kepano/obsidian-skills.
Wikilinks
Internal links use double brackets. The filename without extension.
| Syntax | What it does |
|---|---|
[[Note Name]] | Basic link |
[[Note Name|Display Text]] | Aliased link (shows "Display Text") |
[[Note Name#Heading]] | Link to a specific heading |
[[Note Name#^block-id]] | Link to a specific block |
Rules:
- Case-sensitive on some systems. Match the exact filename.
- No path needed: Obsidian resolves by filename uniqueness.
- If two files have the same name, use
[[Folder/Note Name]]to disambiguate.
Embeds
Embeds use ! before the wikilink. They display the content inline.
| Syntax | What it does |
|---|---|
![[Note Name]] | Embed a full note |
![[Note Name#Heading]] | Embed a section |
![[image.png]] | Embed an image |
![[image.png|300]] | Embed image with width 300px |
![[document.pdf]] | Embed a PDF (Obsidian renders natively) |
![[audio.mp3]] | Embed audio |
Callouts
Callouts are blockquotes with a type keyword. They render as styled alert boxes.
> [!note]
> Default informational callout.
> [!note] Custom Title
> Callout with a custom title.
> [!note]- Collapsible (closed by default)
> Click to expand.
> [!note]+ Collapsible (open by default)
> Click to collapse.
All callout types
| Type | Aliases | Use for |
|---|---|---|
note | : | General notes |
abstract | summary, tldr | Summaries |
info | : | Information |
todo | : | Action items |
tip | hint, important | Tips and highlights |
success | check, done | Positive outcomes |
question | help, faq | Open questions |
warning | caution, attention | Warnings |
failure | fail, missing | Errors or failures |
danger | error | Critical issues |
bug | : | Known bugs |
example | : | Examples |
quote | cite | Quotations |
contradiction | : | Conflicting information (wiki convention) |
Properties (Frontmatter)
Obsidian renders YAML frontmatter as a Properties panel. Rules:
---
type: concept # plain string
title: "Note Title" # quoted if it contains special chars
created: 2026-04-08 # date as YYYY-MM-DD (not ISO datetime)
updated: 2026-04-08
tags:
- tag-one # list items use - format
- tag-two
status: developing
related:
- "[[Other Note]]" # wikilinks must be quoted in YAML
sources:
- "[[source-page]]"
---
Rules:
- Flat YAML only. Never nest objects.
- Dates as
YYYY-MM-DD, not2026-04-08T00:00:00. - Lists as
- item, not inline[a, b, c]. - Wikilinks in YAML must be quoted:
"[[Page]]". tagsfield: Obsidian reads this as the tag list, searchable in vault.
Tags
Two valid forms:
#tag-name : inline tag anywhere in the body
#parent/child-tag : nested tag (shows hierarchy in tag pane)
In frontmatter:
tags:
- research
- ai/obsidian
Do not use # inside frontmatter tag lists. Just the tag name.
Text Formatting
Standard Markdown plus Obsidian extensions:
| Syntax | Result |
|---|---|
**bold** | Bold |
*italic* | Italic |
~~strikethrough~~ | Strikethrough |
==highlight== | Highlighted text (yellow in Obsidian) |
`inline code` | Inline code |
Math
Obsidian uses MathJax/KaTeX:
Inline math:
$E = mc^2$
Block math:
$$
\int_0^\infty e^{-x} dx = 1
$$
Code Blocks
Standard fenced code blocks. Obsidian highlights all common languages:
```python
def hello():
return "world"
```
Tables
Standard Markdown tables:
| Column A | Column B | Column C |
|----------|----------|----------|
| Value | Value | Value |
| Value | Value | Value |
Obsidian renders tables natively. No plugin needed.
Mermaid Diagrams
Obsidian renders Mermaid natively:
```mermaid
graph TD
A[Start] --> B{Decision}
B -->|Yes| C[End]
B -->|No| D[Loop]
D --> A
```
Supported: graph, sequenceDiagram, gantt, classDiagram, pie, flowchart.
Footnotes
This sentence has a footnote.[^1]
[^1]: The footnote text goes here.
What NOT to Do
- Do not use
[link text](path/to/note.md)for internal links: use[[Note Name]]instead. - Do not use HTML inside callouts: stick to Markdown.
- Do not use
##inside a callout body: headings don't render inside callouts. - Do not write
tags: [a, b, c]inline in frontmatter: Obsidian prefers the list format. - Do not write ISO datetimes in frontmatter (
2026-04-08T00:00:00Z): use2026-04-08.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most docs writing skills give in ~1.5k tokens
Counted across 1,951 of the 3,904 authors here whose files we hold, read 2026-09-06
- Use third-person for skill descriptionsin 54 of 1951, across 35 files
- Start descriptions with Use whenin 43 of 1951, across 29 files
- Run baseline scenarios before writing any skillin 40 of 1951, across 26 files
- Use active voicein 40 of 1951, across 36 files
- Map file responsibilities before defining tasksin 36 of 1951, across 29 files
- Use checkbox syntax for tracking stepsin 35 of 1951, across 27 files
- Ask one question at a timein 35 of 1951
- Offer execution options after saving the planin 33 of 1951, across 24 files
- Include complete code in every stepin 33 of 1951, across 27 files
- Design units with clear boundaries and interfacesin 31 of 1951, across 23 files
- Announce the skill usage at the startin 30 of 1951
- Verify agent compliance after adding the skillin 29 of 1951, across 17 files
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.