$npx -y skills add kepano/obsidian-skills --skill obsidian-markdownCreate 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.
| 1 | # Obsidian Flavored Markdown Skill |
| 2 | |
| 3 | 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. |
| 4 | |
| 5 | ## Workflow: Creating an Obsidian Note |
| 6 | |
| 7 | 1. **Add frontmatter** with properties (title, tags, aliases) at the top of the file. See [PROPERTIES.md](references/PROPERTIES.md) for all property types. |
| 8 | 2. **Write content** using standard Markdown for structure, plus Obsidian-specific syntax below. |
| 9 | 3. **Link related notes** using wikilinks (`[[Note]]`) for internal vault connections, or standard Markdown links for external URLs. |
| 10 | 4. **Embed content** from other notes, images, or PDFs using the `![[embed]]` syntax. See [EMBEDS.md](references/EMBEDS.md) for all embed types. |
| 11 | 5. **Add callouts** for highlighted information using `> [!type]` syntax. See [CALLOUTS.md](references/CALLOUTS.md) for all callout types. |
| 12 | 6. **Verify** the note renders correctly in Obsidian's reading view. |
| 13 | |
| 14 | > 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. |
| 15 | |
| 16 | ## Internal Links (Wikilinks) |
| 17 | |
| 18 | ```markdown |
| 19 | [[Note Name]] Link to note |
| 20 | [[Note Name|Display Text]] Custom display text |
| 21 | [[Note Name#Heading]] Link to heading |
| 22 | [[Note Name#^block-id]] Link to block |
| 23 | [[#Heading in same note]] Same-note heading link |
| 24 | ``` |
| 25 | |
| 26 | Define a block ID by appending `^block-id` to any paragraph: |
| 27 | |
| 28 | ```markdown |
| 29 | This paragraph can be linked to. ^my-block-id |
| 30 | ``` |
| 31 | |
| 32 | For lists and quotes, place the block ID on a separate line after the block: |
| 33 | |
| 34 | ```markdown |
| 35 | > A quote block |
| 36 | |
| 37 | ^quote-id |
| 38 | ``` |
| 39 | |
| 40 | ## Embeds |
| 41 | |
| 42 | Prefix any wikilink with `!` to embed its content inline: |
| 43 | |
| 44 | ```markdown |
| 45 | ![[Note Name]] Embed full note |
| 46 | ![[Note Name#Heading]] Embed section |
| 47 | ![[image.png]] Embed image |
| 48 | ![[image.png|300]] Embed image with width |
| 49 | ![[document.pdf#page=3]] Embed PDF page |
| 50 | ``` |
| 51 | |
| 52 | See [EMBEDS.md](references/EMBEDS.md) for audio, video, search embeds, and external images. |
| 53 | |
| 54 | ## Callouts |
| 55 | |
| 56 | ```markdown |
| 57 | > [!note] |
| 58 | > Basic callout. |
| 59 | |
| 60 | > [!warning] Custom Title |
| 61 | > Callout with a custom title. |
| 62 | |
| 63 | > [!faq]- Collapsed by default |
| 64 | > Foldable callout (- collapsed, + expanded). |
| 65 | ``` |
| 66 | |
| 67 | Common types: `note`, `tip`, `warning`, `info`, `example`, `quote`, `bug`, `danger`, `success`, `failure`, `question`, `abstract`, `todo`. |
| 68 | |
| 69 | See [CALLOUTS.md](references/CALLOUTS.md) for the full list with aliases, nesting, and custom CSS callouts. |
| 70 | |
| 71 | ## Properties (Frontmatter) |
| 72 | |
| 73 | ```yaml |
| 74 | --- |
| 75 | title: My Note |
| 76 | date: 2024-01-15 |
| 77 | tags: |
| 78 | - project |
| 79 | - active |
| 80 | aliases: |
| 81 | - Alternative Name |
| 82 | cssclasses: |
| 83 | - custom-class |
| 84 | --- |
| 85 | ``` |
| 86 | |
| 87 | Default properties: `tags` (searchable labels), `aliases` (alternative note names for link suggestions), `cssclasses` (CSS classes for styling). |
| 88 | |
| 89 | See [PROPERTIES.md](references/PROPERTIES.md) for all property types, tag syntax rules, and advanced usage. |
| 90 | |
| 91 | ## Tags |
| 92 | |
| 93 | ```markdown |
| 94 | #tag Inline tag |
| 95 | #nested/tag Nested tag with hierarchy |
| 96 | ``` |
| 97 | |
| 98 | Tags can contain letters, numbers (not first character), underscores, hyphens, and forward slashes. Tags can also be defined in frontmatter under the `tags` property. |
| 99 | |
| 100 | ## Comments |
| 101 | |
| 102 | ```markdown |
| 103 | This is visible %%but this is hidden%% text. |
| 104 | |
| 105 | %% |
| 106 | This entire block is hidden in reading view. |
| 107 | %% |
| 108 | ``` |
| 109 | |
| 110 | ## Obsidian-Specific Formatting |
| 111 | |
| 112 | ```markdown |
| 113 | ==Highlighted text== Highlight syntax |
| 114 | ``` |
| 115 | |
| 116 | ## Math (LaTeX) |
| 117 | |
| 118 | ```markdown |
| 119 | Inline: $e^{i\pi} + 1 = 0$ |
| 120 | |
| 121 | Block: |
| 122 | $$ |
| 123 | \frac{a}{b} = c |
| 124 | $$ |
| 125 | ``` |
| 126 | |
| 127 | ## Diagrams (Mermaid) |
| 128 | |
| 129 | ````markdown |
| 130 | ```mermaid |
| 131 | graph TD |
| 132 | A[Start] --> B{Decision} |
| 133 | B -->|Yes| C[Do this] |
| 134 | B -->|No| D[Do that] |
| 135 | ``` |
| 136 | ```` |
| 137 | |
| 138 | To link Mermaid nodes to Obsidian notes, add `class NodeName internal-link;`. |
| 139 | |
| 140 | ## Footnotes |
| 141 | |
| 142 | ```markdown |
| 143 | Text with a footnote[^1]. |
| 144 | |
| 145 | [^1]: Footnote content. |
| 146 | |
| 147 | Inline footnote.^[This is inline.] |
| 148 | ``` |
| 149 | |
| 150 | ## Complete Example |
| 151 | |
| 152 | ````markdown |
| 153 | --- |
| 154 | title: Project Alpha |
| 155 | date: 2024-01-15 |
| 156 | tags: |
| 157 | - project |
| 158 | - active |
| 159 | status: in-progress |
| 160 | --- |
| 161 | |
| 162 | # Project Alpha |
| 163 | |
| 164 | This project aims to [[improve workflow]] using modern techniques. |
| 165 | |
| 166 | > [!important] Key Deadline |
| 167 | > The first milestone is due on ==January 30th==. |
| 168 | |
| 169 | ## Tasks |
| 170 | |
| 171 | - [x] Initial planning |
| 172 | - [ ] Development phase |
| 173 | - [ ] Backend implementation |
| 174 | - [ ] Frontend design |
| 175 | |
| 176 | ## Notes |
| 177 | |
| 178 | The algorithm uses $O(n \log n)$ sorting. See [[Algorithm Notes#Sorting]] for details. |
| 179 | |
| 180 | ![[Architecture Diagram.p |