Skill: sadlay/obsidian-markdown (version 1.0.0)

--- 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 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. ## Workflow: Creating an Obsidian Note 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. > 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) ```markdown [[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 ``` Define a block ID by appending `^block-id` to any paragraph: ```markdown This paragraph can be linked to. ^my-block-id ``` For lists and quotes, place the block ID on a separate line after the block: ```markdown > A quote block ^quote-id ``` ## Embeds Prefix any wikilink with `!` to embed its content inline: ```markdown ![[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 ``` See [EMBEDS.md](references/EMBEDS.md) for audio, video, search embeds, and external images. ## Callouts ```markdown > [!note] > Basic callout. > [!warning] Custom Title > Callout with a custom title. > [!faq]- Collapsed by default > Foldable callout (- collapsed, + expanded). ``` Common types: `note`, `tip`, `warning`, `info`, `example`, `quote`, `bug`, `danger`, `success`, `failure`, `question`, `abstract`, `todo`. See [CALLOUTS.md](references/CALLOUTS.md) for the full list with aliases, nesting, and custom CSS callouts. ## Properties (Frontmatter) ```yaml --- title: My Note date: 2024-01-15 tags: - project - active aliases: - Alternative Name cssclasses: - custom-class --- ``` Default properties: `tags` (searchable labels), `aliases` (alternative note names for link suggestions), `cssclasses` (CSS classes for styling). See [PROPERTIES.md](references/PROPERTIES.md) for all property types, tag syntax rules, and advanced usage. ## Tags ```markdown #tag Inline tag #nested/tag Nested tag with hierarchy ``` Tags can contain letters, numbers (not first character), underscores, hyphens, and forward slashes. Tags can also be defined in frontmatter under the `tags` property. ## Comments ```markdown This is visible %%but this is hidden%% text. %% This entire block is hidden in reading view. %% ``` ## Obsidian-Specific Formatting ```markdown ==Highlighted text== Highlight syntax ``` ## Math (LaTeX) ```markdown Inline: $e^{i\pi} + 1 = 0$ Block: $$ \frac{a}{b} = c $$ ``` ## Diagrams (Mermaid) ````markdown ```mermaid graph TD A[Start] --> B{Decision} B -->|Yes| C[Do this] B -->|No| D[Do that] ``` ```` To link Mermaid nodes to Obsidian notes, add `class NodeName internal-link;`. ## Footnotes ```markdown Text with a footnote[^1]. [^1]: Footnote content. Inline footnote.^[This is inline.] ``` ## Complete Example ````markdown --- title: Project Alpha date: 2024-01-15 tags: - project - active status: in-progress --- # Project Alpha This project aims to [[improve workflow]] using modern techniques. > [!important] Key Deadline > The first milestone is due on ==January 30th==. ## Tasks - [x] Initial planning - [ ] Development phase - [ ] Backend implementation - [ ] Frontend design ## Notes The algorithm uses $O(n \log n)$ sorting. See [[Algorithm Notes#Sorting]] for details. ![[Architecture Diagram.png|600]] Reviewed in [[Meeting Notes 2024-01-10#Decisions]]. ```` ## References - [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)

path: references/CALLOUTS.md
content: # Callouts Reference

## Basic Callout

```markdown
> [!note]
> This is a note callout.

> [!info] Custom Title
> This callout has a custom title.

> [!tip] Title Only
```

## Foldable Callouts

```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 | Color / Icon |
|------|---------|-------------|
| `note` | - | Blue, pencil |
| `abstract` | `summary`, `tldr` | Teal, clipboard |
| `info` | - | Blue, info |
| `todo` | - | Blue, checkbox |
| `tip` | `hint`, `important` | Cyan, flame |
| `success` | `check`, `done` | Green, checkmark |
| `question` | `help`, `faq` | Yellow, question mark |
| `warning` | `caution`, `attention` | Orange, warning |
| `failure` | `fail`, `missing` | Red, X |
| `danger` | `error` | Red, zap |
| `bug` | - | Red, bug |
| `example` | - | Purple, list |
| `quote` | `cite` | Gray, quote |

## Custom Callouts (CSS)

```css
.callout[data-callout="custom-type"] {
  --callout-color: 255, 0, 0;
  --callout-icon: lucide-alert-circle;
}
```


path: references/EMBEDS.md
content: # Embeds Reference

## 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
![Alt text](https://example.com/image.png)
![Alt text|300](https://example.com/image.png)
```

## 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]]
```

Where the list has a block ID:

```markdown
- Item 1
- Item 2
- Item 3

^list-id
```

## Embed Search Results

````markdown
```query
tag:#project status:done
```
````


path: references/PROPERTIES.md
content: # Properties (Frontmatter) Reference

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 (searchable, shown in graph view)
- `aliases` - Alternative names for the note (used in link suggestions)
- `cssclasses` - CSS classes applied to the note in reading/editing view

## Tags

```markdown
#tag
#nested/tag
#tag-with-dashes
#tag_with_underscores
```

Tags can contain: letters (any language), numbers (not first character), underscores `_`, hyphens `-`, forward slashes `/` (for nesting).

In frontmatter:

```yaml
---
tags:
  - tag1
  - nested/tag2
---
```


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)