Tidemark
approvedby Real-Fruit-Snacks
Replace {{variables}} with YAML frontmatter values on demand - This plugin has not been manually reviewed by Obsidian staff.
Replace {{variables}} in your Obsidian notes with values from YAML frontmatter — color-coded in the editor, resolved on demand.
Overview
Tidemark is a variable-substitution plugin for Obsidian. Define values once in a note's YAML frontmatter, reference them anywhere in the body with {{variable}} syntax, and copy or replace them with a single command. Every token is color-coded live in the editor — mint when it resolves, amber when it falls back to a default, red when it's missing — so you can see the state of a template at a glance.
The engine parses frontmatter, resolves nested dot-notation and joined arrays, and emits CodeMirror decorations for real-time highlighting. Frontmatter is only ever read for substitution and written through Obsidian's own APIs, so your YAML stays valid.
Features
- Color-coded states — resolved, has-default, and missing tokens are tinted as you type.
- Nested & arrays —
{{server.ip}},{{items[0]}}, and arrays joined by a configurable separator. - Inline defaults —
{{port:22}}uses the default when the key isn't set. - Copy or replace — line, selection, or whole document, with variables resolved.
- Rename from variables — resolve variables in the filename via Obsidian's file manager.
- Set values in place — a command and editor-menu item to set a variable's frontmatter value from the cursor.
- List variables — a searchable modal of every variable in the document and its state.
- Custom delimiters — swap
{{ }}and the default separator for your own.
Syntax
| Form | Meaning |
|---|---|
{{name}} | Resolve name from frontmatter |
{{name:fallback}} | Use fallback if name is missing |
{{server.ip}} | Nested dot-notation |
{{items[0]}} | Array index |
Installation
Requires Obsidian 1.0 or newer.
Community plugins (recommended)
- Open Settings → Community plugins → Browse.
- Search for Tidemark, then Install and Enable.
Or open it straight from obsidian.md/plugins?id=tidemark.
BRAT (latest pre-release)
Install BRAT, then add Real-Fruit-Snacks/Tidemark as a beta plugin.
Manual
Download main.js, manifest.json, and styles.css from the latest release into <your-vault>/.obsidian/plugins/tidemark/, then enable Tidemark under Settings → Community plugins.
Commands
| Command | Description |
|---|---|
| Copy current line (replaced) | Copy the cursor's line with variables resolved |
| Copy selection (replaced) | Copy the selection with variables resolved |
| Copy document (replaced) | Copy the whole document with variables resolved |
| Replace in selection | Replace variables in the selection (or line) in place |
| Replace all in document | Replace every variable in the document body |
| Replace in document and filename | Replace in the body and rename the file |
| Rename file (replace variables) | Resolve variables in the filename only |
| List all variables | Open a searchable list of variables and their state |
| Set variable value | Set the frontmatter value for the variable at the cursor |
A Tidemark: Set variable value item is also added to the editor right-click menu.
How it works
Values live in the note's frontmatter; {{variables}} in the body reference them. Tidemark reads the frontmatter from the live editor buffer (so unsaved edits count), resolves each token, and colors it by state. Copy commands leave the document untouched; replace commands apply targeted edits; and setting a value writes only the frontmatter block — never overwriting invalid YAML.
Contributing
Contributions are welcome. Please read CONTRIBUTING.md and the Code of Conduct before opening a pull request.
License
Released under the MIT License.
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.