Complete collection of AI agent skills including: - Frontend Development (Vue, React, Next.js, Three.js) - Backend Development (NestJS, FastAPI, Node.js) - Mobile Development (React Native, Expo) - Testing (E2E, frontend, webapp) - DevOps (GitHub Actions, CI/CD) - Marketing (SEO, copywriting, analytics) - Security (binary analysis, vulnerability scanning) - And many more... Synchronized from: https://skills.sh/ Co-Authored-By: Claude <noreply@anthropic.com>
621 lines
11 KiB
Markdown
621 lines
11 KiB
Markdown
---
|
|
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` |
|
|
|
|
### Escaping Formatting
|
|
|
|
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
|
|
```
|
|
|
|
Common characters to escape: `\*`, `\_`, `\#`, `` \` ``, `\|`, `\~`
|
|
|
|
## 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]]
|
|
```
|
|
|
|
### Link to Blocks
|
|
|
|
```markdown
|
|
[[Note Name#^block-id]]
|
|
[[Note Name#^block-id|Custom Text]]
|
|
```
|
|
|
|
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, add the block ID on a separate line:
|
|
```markdown
|
|
> This is a quote
|
|
> With multiple lines
|
|
|
|
^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]]
|
|
```
|
|
|
|
Where the list has been defined with a block ID:
|
|
```markdown
|
|
- Item 1
|
|
- Item 2
|
|
- Item 3
|
|
|
|
^list-id
|
|
```
|
|
|
|
### Embed Search Results
|
|
|
|
````markdown
|
|
```query
|
|
tag:#project status:done
|
|
```
|
|
````
|
|
|
|
## Callouts
|
|
|
|
### 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 | 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
|
|
```
|
|
|
|
### Ordered Lists
|
|
|
|
```markdown
|
|
1. First item
|
|
2. Second item
|
|
1. Nested numbered
|
|
2. Another nested
|
|
3. Third item
|
|
|
|
1) Alternative syntax
|
|
2) With parentheses
|
|
```
|
|
|
|
### Task Lists
|
|
|
|
```markdown
|
|
- [ ] Incomplete task
|
|
- [x] Completed task
|
|
- [ ] Task with sub-tasks
|
|
- [ ] Subtask 1
|
|
- [x] Subtask 2
|
|
```
|
|
|
|
## Quotes
|
|
|
|
```markdown
|
|
> This is a blockquote.
|
|
> It can span multiple lines.
|
|
>
|
|
> And include multiple paragraphs.
|
|
>
|
|
> > Nested quotes work too.
|
|
```
|
|
|
|
## Code
|
|
|
|
### Inline Code
|
|
|
|
```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}!")
|
|
```
|
|
````
|
|
|
|
### 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")
|
|
```
|
|
````
|
|
`````
|
|
|
|
## Tables
|
|
|
|
```markdown
|
|
| Header 1 | Header 2 | Header 3 |
|
|
|----------|----------|----------|
|
|
| Cell 1 | Cell 2 | Cell 3 |
|
|
| Cell 4 | Cell 5 | Cell 6 |
|
|
```
|
|
|
|
### Alignment
|
|
|
|
```markdown
|
|
| Left | Center | Right |
|
|
|:---------|:--------:|---------:|
|
|
| Left | Center | Right |
|
|
```
|
|
|
|
### Using Pipes in Tables
|
|
|
|
Escape pipes with backslash:
|
|
```markdown
|
|
| Column 1 | Column 2 |
|
|
|----------|----------|
|
|
| [[Link\|Display]] | ![[Image\|100]] |
|
|
```
|
|
|
|
## Math (LaTeX)
|
|
|
|
### Inline Math
|
|
|
|
```markdown
|
|
This is inline math: $e^{i\pi} + 1 = 0$
|
|
```
|
|
|
|
### Block Math
|
|
|
|
```markdown
|
|
$$
|
|
\begin{vmatrix}
|
|
a & b \\
|
|
c & d
|
|
\end{vmatrix} = ad - bc
|
|
$$
|
|
```
|
|
|
|
### 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;
|
|
```
|
|
````
|
|
|
|
## 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>
|
|
|
|
<details>
|
|
<summary>Click to expand</summary>
|
|
Hidden content here.
|
|
</details>
|
|
|
|
<kbd>Ctrl</kbd> + <kbd>C</kbd>
|
|
```
|
|
|
|
## 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
|
|
|
|
For more details, see the official documentation[^1].
|
|
|
|
[^1]: https://example.com/docs
|
|
|
|
%%
|
|
Internal notes:
|
|
- Review with team on Friday
|
|
- Consider alternative approaches
|
|
%%
|
|
````
|
|
|
|
## 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)
|