| name | Obsidian Formatting |
| description | This skill should be used when "creating Obsidian notes", "formatting frontmatter", "using Dataview syntax", "embedding images in Obsidian", or when working with Obsidian-specific markdown features. Provides expertise in YAML frontmatter, Dataview queries, wikilinks, and Obsidian markdown conventions. |
| version | 0.1.0 |
Obsidian Formatting
Overview
Obsidian uses an enhanced markdown format with YAML frontmatter, wikilinks, and plugin-specific syntax like Dataview and Mapview. This skill provides knowledge for creating properly formatted Obsidian notes, particularly for location-based notes with geographic data.
When to Use This Skill
Load this skill when creating or formatting Obsidian notes, especially:
- Writing YAML frontmatter with proper syntax
- Using Dataview inline queries and code blocks
- Creating wikilinks for internal references
- Embedding images with Obsidian syntax
- Configuring Mapview plugin blocks for geographic visualization
Core Concepts
YAML Frontmatter
YAML frontmatter appears at the top of Obsidian notes between --- delimiters. It stores structured metadata.
Basic structure:
---
field: value
array_field:
- item1
- item2
nested:
key: value
---
Critical rules:
- Must start file (no content before first
---) - Use 2-space indentation for nested structures
- Arrays use
-prefix (dash + space) - Strings with special characters need quotes
- Wikilinks in frontmatter:
'[[Page Name]]'(quoted) - Coordinates: store as array
[latitude, longitude]
Wikilinks
Wikilinks create internal references between notes.
Syntax:
- Basic:
[[Note Name]] - With alias:
[[Note Name|Display Text]] - To heading:
[[Note Name#Heading]] - To block:
[[Note Name^block-id]]
In frontmatter: Quote wikilinks to preserve syntax:
Country: '[[UK]]'
Region: '[[Somerset]]'
Dataview Inline Queries
Dataview queries display dynamic content based on note metadata.
Inline queries use backticks with = prefix:
`= this.Country`
`= this.location[0]`
Complex inline query for images:
`= choice(startswith(string(default(this.image, "")), "[["), "!" + this.image, choice(this.image, "", "No Image"))`
This query:
- Checks if
imagefield starts with[[(wikilink) - If yes: Prepends
!to embed wikilinked image - If no: Uses markdown image syntax with URL
- If empty: Shows "No Image"
Mapview Plugin
Mapview creates interactive maps from note coordinates.
Standard code block:
```mapview
{"name":"Current Note","query":"path:\"$filename$\"","chosenMapSource":0,"autoFit":true,"lock":true,"showLinks":true,"linkColor":"red","markerLabels":"off"}
**Key fields:**
- `query`: Dataview query to select notes (use `path:\"$filename$\"` for current note)
- `autoFit`: Center map on markers
- `lock`: Prevent map dragging
- `markerLabels`: Show/hide marker labels
### Obsidian Markdown Extensions
**Image embedding:**
- Wikilink: `![[image.png]]`
- URL: ``
- With size: `![[image.png|200]]` (200px width)
**Tags:**
- Inline: `#tag-name`
- In frontmatter: Use `tags:` array
```yaml
tags:
- map/food
- location
Callouts (admonitions):
> [!note] Title
> Content here
Location Note Formatting
Required Frontmatter Fields
For location notes with Mapview integration:
---
tags:
- map/TYPE # map/food, map/photo-location, map/accommodation/campsite, map/other
Country: '[[Country Name]]'
Region: '[[Region Name]]'
location:
- LATITUDE
- LONGITUDE
Source:
- https://source1.com
- https://source2.com
image: https://example.com/image.jpg # Or '[[local-image.jpg]]'
publish: true
Done: false # or visited: false
color: blue
icon: ICON_NAME # map-pin, utensils, camera, tent-tree
---
Location Coordinates
Store as array of two numbers (latitude first, longitude second):
location:
- 51.4776031
- -2.6256316
Do not use:
- String format:
"51.4776031, -2.6256316"❌ - Object format:
{lat: 51.4776031, lon: -2.6256316}❌
Note Structure
Standard structure for location notes:
---
[frontmatter here]
---
```mapview
[mapview config]
Description
[Detailed information about the location]
[Type-Specific Section]
Travel Information
[Directions, parking, accessibility, contact info]
[Image display query]
### Image Display Pattern
Use this Dataview query at the end of notes:
```markdown
`= choice(startswith(string(default(this.image, "")), "[["), "!" + this.image, choice(this.image, "", "No Image"))`
This handles both wikilinks ([[image.jpg]]) and URLs (https://...).
Best Practices
Frontmatter
- Always quote wikilinks:
'[[Page Name]]' - Use arrays for multiple values (tags, sources, location)
- Keep boolean values lowercase:
true,false - Validate YAML syntax (check indentation, colons, dashes)
Content
- Use markdown headings (
##) for sections - Separate frontmatter from content with blank line
- Include Mapview block before content for geographic notes
- End with image display query if
imagefield used
Tags
- Use hierarchical tags:
map/food,map/photo-location - Consistent naming: kebab-case for multi-word tags
- Place in frontmatter for better organization
Wikilinks
- Reference countries/regions as wikilinks for navigation
- Quote wikilinks in frontmatter values
- Use descriptive link text with aliases when needed
Validation
Check notes for:
- ✅ Frontmatter opens and closes with
--- - ✅ Required fields present (tags, Country, Region, Source)
- ✅ Location array has exactly 2 numbers (if present)
- ✅ Wikilinks quoted in frontmatter
- ✅ Tags use array syntax
- ✅ Mapview block includes valid JSON
- ✅ Image display query present if image field used
Common Issues
Issue: Frontmatter parsing fails Cause: Missing quotes around wikilinks or invalid YAML Fix: Quote all wikilinks, check indentation and colons
Issue: Dataview query shows raw code
Cause: Dataview plugin not enabled or syntax error
Fix: Verify Dataview installed, check backtick and = placement
Issue: Map doesn't display location
Cause: Incorrect location format or Mapview plugin disabled
Fix: Use array format [lat, lon], enable Mapview plugin
Issue: Image not displaying
Cause: Incorrect Dataview query or missing field
Fix: Use standard image display query, ensure image field exists
Additional Resources
For detailed syntax and advanced features:
references/dataview-syntax.md- Complete Dataview query referencereferences/frontmatter-schema.md- Field definitions and typesexamples/complete-note.md- Fully formatted example location note
Use these references when working with complex queries or unfamiliar field types.