vault-templates
Templater Convention & Drift Repair
Obsidian's Templater plugin renders placeholder syntax when a new note is created. When rendering fails (plugin error, user dismissal, manual copy-paste), the literal markers get committed and persist. Fixing them is mechanical.
Unrendered Markers
| Marker | Meaning | Fix |
|---|---|---|
<% tp.file.cursor(N) %> |
Cursor position placeholder | Strip the entire tag |
<% tp.file.title %> |
Filename stem | Replace with actual filename (no .md) |
<% tp.date.now("YYYY-MM-DD") %> |
Today's date | Replace with the creation date from frontmatter, or the filename date for daily notes |
{{title}} |
Filename stem (legacy) | Replace with filename stem |
{{date}} |
Today's date (legacy) | Same as above |
<% await tp.system.prompt(...) %> |
User prompt | Strip; requires user to refill |
Detection
# Find any Templater leak
rg '<%\s*tp\.' --glob '*.md'
rg '\{\{title\}\}|\{\{date\}\}' --glob '*.md'
Fixing <% tp.file.cursor(1) %>
Before:
---
tags: [π/notes]
---
<% tp.file.cursor(1) %>
After:
---
tags: [π/notes]
---
Use Edit with old_string='\n\n<% tp.file.cursor(1) %>' and new_string='' (or adjust for trailing whitespace) β the cursor marker never has meaningful content around it.
Fixing {{title}} in daily notes
Before (file FVH/notes/2025-03-26.md):
# {{title}}
## Log
After:
# 2025-03-26
## Log
Use the filename stem (no .md). Don't replace {{title}} inside code blocks or quoted text β only in headings / body.
Canonical Template Files
The templates themselves live in Templates/ and should contain raw Templater syntax β never "fix" them. Only fix notes outside Templates/.
| Template | Produces | Sections |
|---|---|---|
Daily.md |
Notes/YYYY-MM-DD.md |
Quick Links, Today's Focus, Work, Personal, Tomorrow's Prep, Navigation |
MOC.md |
Zettelkasten/{Subject} MOC.md |
Title heading + sections |
New.md |
general Zettelkasten notes | Frontmatter + body stub |
FVH Daily.md |
FVH/notes/YYYY-MM-DD.md |
Log, Thoughts, Discoveries, Todo, Recurring reminders |
Daily Note Structure Drift
Personal daily notes created before 2025 usually lack ## Navigation and ## Tomorrow's Prep. Two remediation options:
- Retrofit template β add the missing sections to every old daily note. Usually not worth the diff; users rarely look at old daily notes.
- Leave as-is β document the change boundary in a single commit message and let old notes age.
Default to #2 unless the user specifically asks for retrofit.
FVH Daily Note Drift
7 FVH daily notes contain literal {{title}} in the heading β fix these.
Safety
- Never edit
Templates/*.mdwhen fixing leakage β templates are supposed to contain Templater syntax. - Never run a blanket
sed -i 's/{{title}}/.../'β always use file-specificEditcalls so the title derivation is correct per file. - When you encounter
<% tp.system.prompt(...) %>, don't guess the answer β flag for user.
Related Skills
- vault-frontmatter β YAML-level fixes
- vault-files β daily-note operations via Obsidian CLI