obsidian-markdown ยท diff
git:20260111.ec8f9e2 to git:20260225.5a557ce
68 added, 492 removed. Audit A to A.
---
name: obsidian-markdown
description: Create and edit Obsidian Flavored Markdown with wikilinks, embeds, callouts, properties, and other Obsidian-specific syntax. Use when working with .md files in Obsidian, or when the user mentions wikilinks, callouts, frontmatter, tags, embeds, or Obsidian notes.
---
# Obsidian Flavored Markdown Skill
- This skill enables skills-compatible agents to create and edit valid Obsidian Flavored Markdown, including all Obsidian-specific syntax extensions.
-
- ## Overview
-
- Obsidian uses a combination of Markdown flavors:
- - [CommonMark](https://commonmark.org/)
- - [GitHub Flavored Markdown](https://github.github.com/gfm/)
- - [LaTeX](https://www.latex-project.org/) for math
- - Obsidian-specific extensions (wikilinks, callouts, embeds, etc.)
-
- ## Basic Formatting
-
- ### Paragraphs and Line Breaks
-
- ```markdown
- This is a paragraph.
-
- This is another paragraph (blank line between creates separate paragraphs).
-
- For a line break within a paragraph, add two spaces at the end
- or use Shift+Enter.
- ```
-
- ### Headings
-
- ```markdown
- # Heading 1
- ## Heading 2
- ### Heading 3
- #### Heading 4
- ##### Heading 5
- ###### Heading 6
- ```
-
- ### Text Formatting
-
- | Style | Syntax | Example | Output |
- |-------|--------|---------|--------|
- | Bold | `**text**` or `__text__` | `**Bold**` | **Bold** |
- | Italic | `*text*` or `_text_` | `*Italic*` | *Italic* |
- | Bold + Italic | `***text***` | `***Both***` | ***Both*** |
- | Strikethrough | `~~text~~` | `~~Striked~~` | ~~Striked~~ |
- | Highlight | `==text==` | `==Highlighted==` | ==Highlighted== |
- | Inline code | `` `code` `` | `` `code` `` | `code` |
+ Create and edit valid Obsidian Flavored Markdown. Obsidian extends CommonMark and GFM with wikilinks, embeds, callouts, properties, comments, and other syntax. This skill covers only Obsidian-specific extensions -- standard Markdown (headings, bold, italic, lists, quotes, code blocks, tables) is assumed knowledge.
- ### Escaping Formatting
+ ## Workflow: Creating an Obsidian Note
- Use backslash to escape special characters:
- ```markdown
- \*This won't be italic\*
- \#This won't be a heading
- 1\. This won't be a list item
- ```
+ 1. **Add frontmatter** with properties (title, tags, aliases) at the top of the file. See [PROPERTIES.md](references/PROPERTIES.md) for all property types.
+ 2. **Write content** using standard Markdown for structure, plus Obsidian-specific syntax below.
+ 3. **Link related notes** using wikilinks (`[[Note]]`) for internal vault connections, or standard Markdown links for external URLs.
+ 4. **Embed content** from other notes, images, or PDFs using the `![[embed]]` syntax. See [EMBEDS.md](references/EMBEDS.md) for all embed types.
+ 5. **Add callouts** for highlighted information using `> [!type]` syntax. See [CALLOUTS.md](references/CALLOUTS.md) for all callout types.
+ 6. **Verify** the note renders correctly in Obsidian's reading view.
- Common characters to escape: `\*`, `\_`, `\#`, `` \` ``, `\|`, `\~`
+ > When choosing between wikilinks and Markdown links: use `[[wikilinks]]` for notes within the vault (Obsidian tracks renames automatically) and `[text](url)` for external URLs only.
## Internal Links (Wikilinks)
- ### Basic Links
-
```markdown
- [[Note Name]]
- [[Note Name.md]]
- [[Note Name|Display Text]]
- ```
-
- ### Link to Headings
-
- ```markdown
- [[Note Name#Heading]]
- [[Note Name#Heading|Custom Text]]
- [[#Heading in same note]]
- [[##Search all headings in vault]]
+ [[Note Name]] Link to note
+ [[Note Name|Display Text]] Custom display text
+ [[Note Name#Heading]] Link to heading
+ [[Note Name#^block-id]] Link to block
+ [[#Heading in same note]] Same-note heading link
```
- ### Link to Blocks
+ Define a block ID by appending `^block-id` to any paragraph:
```markdown
- [[Note Name#^block-id]]
- [[Note Name#^block-id|Custom Text]]
+ This paragraph can be linked to. ^my-block-id
```
- Define a block ID by adding `^block-id` at the end of a paragraph:
- ```markdown
- This is a paragraph that can be linked to. ^my-block-id
- ```
+ For lists and quotes, place the block ID on a separate line after the block:
- For lists and quotes, add the block ID on a separate line:
```markdown
- > This is a quote
- > With multiple lines
+ > A quote block
^quote-id
```
- ### Search Links
-
- ```markdown
- [[##heading]] Search for headings containing "heading"
- [[^^block]] Search for blocks containing "block"
- ```
-
- ## Markdown-Style Links
-
- ```markdown
- [Display Text](Note%20Name.md)
- [Display Text](Note%20Name.md#Heading)
- [Display Text](https://example.com)
- [Note](obsidian://open?vault=VaultName&file=Note.md)
- ```
-
- Note: Spaces must be URL-encoded as `%20` in Markdown links.
-
## Embeds
- ### Embed Notes
-
- ```markdown
- ![[Note Name]]
- ![[Note Name#Heading]]
- ![[Note Name#^block-id]]
- ```
-
- ### Embed Images
-
- ```markdown
- ![[image.png]]
- ![[image.png|640x480]] Width x Height
- ![[image.png|300]] Width only (maintains aspect ratio)
- ```
-
- ### External Images
-
- ```markdown
- 
- 
- ```
-
- ### Embed Audio
-
- ```markdown
- ![[audio.mp3]]
- ![[audio.ogg]]
- ```
-
- ### Embed PDF
-
- ```markdown
- ![[document.pdf]]
- ![[document.pdf#page=3]]
- ![[document.pdf#height=400]]
- ```
-
- ### Embed Lists
-
- ```markdown
- ![[Note#^list-id]]
- ```
+ Prefix any wikilink with `!` to embed its content inline:
- Where the list has been defined with a block ID:
```markdown
- - Item 1
- - Item 2
- - Item 3
-
- ^list-id
+ ![[Note Name]] Embed full note
+ ![[Note Name#Heading]] Embed section
+ ![[image.png]] Embed image
+ ![[image.png|300]] Embed image with width
+ ![[document.pdf#page=3]] Embed PDF page
```
- ### Embed Search Results
-
- ````markdown
- ```query
- tag:#project status:done
- ```
- ````
+ See [EMBEDS.md](references/EMBEDS.md) for audio, video, search embeds, and external images.
## Callouts
- ### Basic Callout
-
```markdown
> [!note]
- > This is a note callout.
-
- > [!info] Custom Title
- > This callout has a custom title.
-
- > [!tip] Title Only
- ```
+ > Basic callout.
- ### Foldable Callouts
+ > [!warning] Custom Title
+ > Callout with a custom title.
- ```markdown
> [!faq]- Collapsed by default
- > This content is hidden until expanded.
-
- > [!faq]+ Expanded by default
- > This content is visible but can be collapsed.
- ```
-
- ### Nested Callouts
-
- ```markdown
- > [!question] Outer callout
- > > [!note] Inner callout
- > > Nested content
- ```
-
- ### Supported Callout Types
-
- | Type | Aliases | Description |
- |------|---------|-------------|
- | `note` | - | Blue, pencil icon |
- | `abstract` | `summary`, `tldr` | Teal, clipboard icon |
- | `info` | - | Blue, info icon |
- | `todo` | - | Blue, checkbox icon |
- | `tip` | `hint`, `important` | Cyan, flame icon |
- | `success` | `check`, `done` | Green, checkmark icon |
- | `question` | `help`, `faq` | Yellow, question mark |
- | `warning` | `caution`, `attention` | Orange, warning icon |
- | `failure` | `fail`, `missing` | Red, X icon |
- | `danger` | `error` | Red, zap icon |
- | `bug` | - | Red, bug icon |
- | `example` | - | Purple, list icon |
- | `quote` | `cite` | Gray, quote icon |
-
- ### Custom Callouts (CSS)
-
- ```css
- .callout[data-callout="custom-type"] {
- --callout-color: 255, 0, 0;
- --callout-icon: lucide-alert-circle;
- }
- ```
-
- ## Lists
-
- ### Unordered Lists
-
- ```markdown
- - Item 1
- - Item 2
- - Nested item
- - Another nested
- - Item 3
-
- * Also works with asterisks
- + Or plus signs
+ > Foldable callout (- collapsed, + expanded).
```
- ### Ordered Lists
-
- ```markdown
- 1. First item
- 2. Second item
- 1. Nested numbered
- 2. Another nested
- 3. Third item
+ Common types: `note`, `tip`, `warning`, `info`, `example`, `quote`, `bug`, `danger`, `success`, `failure`, `question`, `abstract`, `todo`.
- 1) Alternative syntax
- 2) With parentheses
- ```
+ See [CALLOUTS.md](references/CALLOUTS.md) for the full list with aliases, nesting, and custom CSS callouts.
- ### Task Lists
+ ## Properties (Frontmatter)
- ```markdown
- - [ ] Incomplete task
- - [x] Completed task
- - [ ] Task with sub-tasks
- - [ ] Subtask 1
- - [x] Subtask 2
+ ```yaml
+ ---
+ title: My Note
+ date: 2024-01-15
+ tags:
+ - project
+ - active
+ aliases:
+ - Alternative Name
+ cssclasses:
+ - custom-class
+ ---
```
- ## Quotes
-
- ```markdown
- > This is a blockquote.
- > It can span multiple lines.
- >
- > And include multiple paragraphs.
- >
- > > Nested quotes work too.
- ```
+ Default properties: `tags` (searchable labels), `aliases` (alternative note names for link suggestions), `cssclasses` (CSS classes for styling).
- ## Code
+ See [PROPERTIES.md](references/PROPERTIES.md) for all property types, tag syntax rules, and advanced usage.
- ### Inline Code
+ ## Tags
```markdown
- Use `backticks` for inline code.
- Use double backticks for ``code with a ` backtick inside``.
- ```
-
- ### Code Blocks
-
- ````markdown
- ```
- Plain code block
- ```
-
- ```javascript
- // Syntax highlighted code block
- function hello() {
- console.log("Hello, world!");
- }
- ```
-
- ```python
- # Python example
- def greet(name):
- print(f"Hello, {name}!")
+ #tag Inline tag
+ #nested/tag Nested tag with hierarchy
```
- ````
- ### Nesting Code Blocks
-
- Use more backticks or tildes for the outer block:
-
- `````markdown
- ````markdown
- Here's how to create a code block:
- ```js
- console.log("Hello")
- ```
- ````
- `````
+ Tags can contain letters, numbers (not first character), underscores, hyphens, and forward slashes. Tags can also be defined in frontmatter under the `tags` property.
- ## Tables
+ ## Comments
```markdown
- | Header 1 | Header 2 | Header 3 |
- |----------|----------|----------|
- | Cell 1 | Cell 2 | Cell 3 |
- | Cell 4 | Cell 5 | Cell 6 |
- ```
-
- ### Alignment
+ This is visible %%but this is hidden%% text.
- ```markdown
- | Left | Center | Right |
- |:---------|:--------:|---------:|
- | Left | Center | Right |
+ %%
+ This entire block is hidden in reading view.
+ %%
```
- ### Using Pipes in Tables
+ ## Obsidian-Specific Formatting
- Escape pipes with backslash:
```markdown
- | Column 1 | Column 2 |
- |----------|----------|
- | [[Link\|Display]] | ![[Image\|100]] |
+ ==Highlighted text== Highlight syntax
```
## Math (LaTeX)
- ### Inline Math
-
```markdown
- This is inline math: $e^{i\pi} + 1 = 0$
- ```
-
- ### Block Math
+ Inline: $e^{i\pi} + 1 = 0$
- ```markdown
+ Block:
$$
- \begin{vmatrix}
- a & b \\
- c & d
- \end{vmatrix} = ad - bc
+ \frac{a}{b} = c
$$
```
- ### Common Math Syntax
-
- ```markdown
- $x^2$ Superscript
- $x_i$ Subscript
- $\frac{a}{b}$ Fraction
- $\sqrt{x}$ Square root
- $\sum_{i=1}^{n}$ Summation
- $\int_a^b$ Integral
- $\alpha, \beta$ Greek letters
- ```
-
## Diagrams (Mermaid)
````markdown
```mermaid
graph TD
A[Start] --> B{Decision}
B -->|Yes| C[Do this]
B -->|No| D[Do that]
- C --> E[End]
- D --> E
```
````
- ### Sequence Diagrams
-
- ````markdown
- ```mermaid
- sequenceDiagram
- Alice->>Bob: Hello Bob
- Bob-->>Alice: Hi Alice
- ```
- ````
-
- ### Linking in Diagrams
-
- ````markdown
- ```mermaid
- graph TD
- A[Biology]
- B[Chemistry]
- A --> B
- class A,B internal-link;
- ```
- ````
+ To link Mermaid nodes to Obsidian notes, add `class NodeName internal-link;`.
## Footnotes
```markdown
- This sentence has a footnote[^1].
-
- [^1]: This is the footnote content.
-
- You can also use named footnotes[^note].
-
- [^note]: Named footnotes still appear as numbers.
-
- Inline footnotes are also supported.^[This is an inline footnote.]
- ```
-
- ## Comments
-
- ```markdown
- This is visible %%but this is hidden%% text.
-
- %%
- This entire block is hidden.
- It won't appear in reading view.
- %%
- ```
-
- ## Horizontal Rules
-
- ```markdown
- ---
- ***
- ___
- - - -
- * * *
- ```
-
- ## Properties (Frontmatter)
-
- Properties use YAML frontmatter at the start of a note:
-
- ```yaml
- ---
- title: My Note Title
- date: 2024-01-15
- tags:
- - project
- - important
- aliases:
- - My Note
- - Alternative Name
- cssclasses:
- - custom-class
- status: in-progress
- rating: 4.5
- completed: false
- due: 2024-02-01T14:30:00
- ---
- ```
-
- ### Property Types
-
- | Type | Example |
- |------|---------|
- | Text | `title: My Title` |
- | Number | `rating: 4.5` |
- | Checkbox | `completed: true` |
- | Date | `date: 2024-01-15` |
- | Date & Time | `due: 2024-01-15T14:30:00` |
- | List | `tags: [one, two]` or YAML list |
- | Links | `related: "[[Other Note]]"` |
-
- ### Default Properties
-
- - `tags` - Note tags
- - `aliases` - Alternative names for the note
- - `cssclasses` - CSS classes applied to the note
-
- ## Tags
-
- ```markdown
- #tag
- #nested/tag
- #tag-with-dashes
- #tag_with_underscores
-
- In frontmatter:
- ---
- tags:
- - tag1
- - nested/tag2
- ---
- ```
-
- Tags can contain:
- - Letters (any language)
- - Numbers (not as first character)
- - Underscores `_`
- - Hyphens `-`
- - Forward slashes `/` (for nesting)
-
- ## HTML Content
-
- Obsidian supports HTML within Markdown:
-
- ```markdown
- <div class="custom-container">
- <span style="color: red;">Colored text</span>
- </div>
+ Text with a footnote[^1].
- <details>
- <summary>Click to expand</summary>
- Hidden content here.
- </details>
+ [^1]: Footnote content.
- <kbd>Ctrl</kbd> + <kbd>C</kbd>
+ Inline footnote.^[This is inline.]
```
## Complete Example
````markdown
---
title: Project Alpha
date: 2024-01-15
tags:
- project
- active
status: in-progress
- priority: high
---
# Project Alpha
- ## Overview
-
This project aims to [[improve workflow]] using modern techniques.
> [!important] Key Deadline
> The first milestone is due on ==January 30th==.
## Tasks
- [x] Initial planning
- - [x] Resource allocation
- [ ] Development phase
- [ ] Backend implementation
- [ ] Frontend design
- - [ ] Testing
- - [ ] Deployment
- ## Technical Notes
-
- The main algorithm uses the formula $O(n \log n)$ for sorting.
-
- ```python
- def process_data(items):
- return sorted(items, key=lambda x: x.priority)
- ```
-
- ## Architecture
-
- ```mermaid
- graph LR
- A[Input] --> B[Process]
- B --> C[Output]
- B --> D[Cache]
- ```
-
- ## Related Documents
-
- - ![[Meeting Notes 2024-01-10#Decisions]]
- - [[Budget Allocation|Budget]]
- - [[Team Members]]
-
- ## References
+ ## Notes
- For more details, see the official documentation[^1].
+ The algorithm uses $O(n \log n)$ sorting. See [[Algorithm Notes#Sorting]] for details.
- [^1]: https://example.com/docs
+ ![[Architecture Diagram.png|600]]
- %%
- Internal notes:
- - Review with team on Friday
- - Consider alternative approaches
- %%
+ Reviewed in [[Meeting Notes 2024-01-10#Decisions]].
````
## References
- - [Basic formatting syntax](https://help.obsidian.md/syntax)
- - [Advanced formatting syntax](https://help.obsidian.md/advanced-syntax)
- [Obsidian Flavored Markdown](https://help.obsidian.md/obsidian-flavored-markdown)
- [Internal links](https://help.obsidian.md/links)
- [Embed files](https://help.obsidian.md/embeds)
- [Callouts](https://help.obsidian.md/callouts)
- [Properties](https://help.obsidian.md/properties)