SKILL.md
Obsidian Flavored Markdown Skill
This skill enables Claude Code to create and edit valid Obsidian Flavored Markdown, including all Obsidian-specific syntax extensions.
Overview
Obsidian uses a combination of Markdown flavors:
- LaTeX for math
- Obsidian-specific extensions (wikilinks, callouts, embeds, etc.)
Basic Formatting
Paragraphs and Line Breaks
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
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`
### Escaping Formatting
Use backslash to escape special characters:
\This won't be italic\
\#This won't be a heading
1\. This won't be a list item
Common characters to escape: `\*`, `\_`, `\#`, `\``, `\|`, `\~`
## Internal Links (Wikilinks)
### Basic Links
[[Note Name]]
[[Note Name.md]]
[[Note Name|Display Text]]
### Link to Headings
[[Note Name#Heading]]
[[Note Name#Heading|Custom Text]]
[[#Heading in same note]]
[[##Search all headings in vault]]
### Link to Blocks
[[Note Name#^block-id]]
[[Note Name#^block-id|Custom Text]]
Define a block ID by adding `^block-id` at the end of a paragraph:
This is a paragraph that can be linked to. ^my-block-id
For lists and quotes, add the block ID on a separate line:
This is a quote
With multiple lines
^quote-id
### Search Links
[[##heading]] Search for headings containing "heading"
[[^^block]] Search for blocks containing "block"
## Markdown-Style Links
[Display Text](Note%20Name.md)
[Display Text](Note%20Name.md#Heading)
[Note](obsidian://open?vault=VaultName&file=Note.md)
Note: Spaces must be URL-encoded as `%20` in Markdown links.
## Embeds
### Embed Notes
![[Note Name]]
![[Note Name#Heading]]
![[Note Name#^block-id]]
### Embed Images
![[image.png]]
![[image.png|640x480]] Width x Height
![[image.png|300]] Width only (maintains aspect ratio)
### External Images
### Embed Audio
![[audio.mp3]]
![[audio.ogg]]
### Embed PDF
![[document.pdf]]
![[document.pdf#page=3]]
![[document.pdf#height=400]]
### Embed Lists
![[Note#^list-id]]
Where the list has been defined with a block ID:
- Item 1
- Item 2
- Item 3
^list-id
### Embed Search Results
tag:#project status:done
## Callouts
### Basic Callout
[!note]
This is a note callout.
[!info] Custom Title
This callout has a custom title.
[!tip] Title Only
### Foldable Callouts
[!faq]- Collapsed by default
This content is hidden until expanded.
[!faq]+ Expanded by default
This content is visible but can be collapsed.
### Nested Callouts
[!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)
.callout[data-callout="custom-type"] {
--callout-color: 255, 0, 0;
--callout-icon: lucide-alert-circle;
}
## Lists
### Unordered Lists
- Item 1
- Item 2
- Nested item
- Another nested
- Item 3
- Also works with asterisks
+ Or plus signs
### Ordered Lists
- First item
- Second item
1. Nested numbered
2. Another nested
- Third item
1) Alternative syntax
2) With parentheses
### Task Lists
- [ ] Incomplete task
- [x] Completed task
- [ ] Task with sub-tasks
- [ ] Subtask 1
- [x] Subtask 2
## Quotes
This is a blockquote.
It can span multiple lines.
>
And include multiple paragraphs.
>
> Nested quotes work too.
## Code
### Inline Code
Use backticks for inline code.
Use double backticks for code with a backtick inside.
### Code Blocks
Plain code block
// Syntax highlighted code block
function hello() {
console.log("Hello, world!");
}
# Python example
def greet(name):
print(f"Hello, {name}!")
### Nesting Code Blocks
Use more backticks or tildes for the outer block:
Here's how to create a code block:
console.log("Hello")
## Tables
| Header 1 | Header 2 | Header 3 |
|---|---|---|
| Cell 1 | Cell 2 | Cell 3 |
| Cell 4 | Cell 5 | Cell 6 |
### Alignment
| Left | Center | Right |
|---|---|---|
| Left | Center | Right |
### Using Pipes in Tables
Escape pipes with backslash:
| Column 1 | Column 2 | ||
|---|---|---|---|
| [[Link\ | Display]] | ![[Image\ | 100]] |
## Math (LaTeX)
### Inline Math
This is inline math: $e^{i\pi} + 1 = 0$
### Block Math
$$
\begin{vmatrix}
a & b \\
c & d
\end{vmatrix} = ad - bc
$$
### Common Math Syntax
$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)
graph TD
A[Start] --> B{Decision}
B -->|Yes| C[Do this]
B -->|No| D[Do that]
C --> E[End]
D --> E
### Sequence Diagrams
sequenceDiagram
Alice->>Bob: Hello Bob
Bob-->>Alice: Hi Alice
### Linking in Diagrams
graph TD
A[Biology]
B[Chemistry]
A --> B
class A,B internal-link;
## Footnotes
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
This is visible %%but this is hidden%% text.
%%
This entire block is hidden.
It won't appear in reading view.
%%
## Horizontal Rules
---
*
___
- - -
## Properties (Frontmatter)
Properties use YAML frontmatter at the start of a note:
---
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
#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:
<div class="custom-container">
<span style="color: red;">Colored text</span>
</div>
<details>
<summary>Click to expand</summary>
Hidden content here.
</details>
<kbd>Ctrl</kbd> + <kbd>C</kbd>
## Complete Example
---
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.
def process_data(items):
return sorted(items, key=lambda x: x.priority)
Architecture
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
For more details, see the official documentation[^1].
[^1]: https://example.com/docs
%%
Internal notes:
- Review with team on Friday
- Consider alternative approaches
%%