deadhedd113 downloadsMove structured Markdown blocks through your notea.
Dynamic Notes is an Obsidian Community plugin for moving structured Markdown blocks through small, local workflows inside ordinary notes.
Now -> Done
Later -> Now
Markdown is the source of truth. Dynamic Notes keeps no hidden per-note state, has no network dependency, and makes ordinary Markdown changes that remain readable, syncable, and versionable without the plugin.
Install Dynamic Notes from the Obsidian Community plugins directory:
For a higher-level explanation of the workflow and design, see Dynamic Notes: A Small Obsidian Workflow Plugin.
Dynamic Notes intentionally does not add automatic advancement, scheduling, recurrence, settings, telemetry, network access, or workflow state outside the note.
A dynamic note opts in with frontmatter and contains exactly one Now, Later, and Done region in that order:
---
dynamic-notes: 1
---
## Now
<!-- dynamic-notes:now -->
<!-- dynamic-notes:block:morning -->
### Morning
- [ ] Review the day
<!-- /dynamic-notes:block:morning -->
<!-- /dynamic-notes:now -->
## Later
<!-- dynamic-notes:later -->
<!-- dynamic-notes:block:work -->
### Work
- [ ] Begin primary task
<!-- /dynamic-notes:block:work -->
<!-- /dynamic-notes:later -->
## Done
<!-- dynamic-notes:done -->
<!-- /dynamic-notes:done -->
The region and block markers must each be on their own line. Block IDs must be unique, non-empty, lowercase identifiers made from letters, digits, and hyphens. Managed regions may contain only whitespace and complete Dynamic Notes blocks.
Dynamic Notes validates the whole structure before modifying a note. If it finds an unsupported version, missing or mismatched marker, duplicate ID, nested block, extra current block, or unrelated content in a managed region, it reports an actionable error and leaves the note unchanged.
In Reading view, Advance uses Obsidian's atomic vault update API. Use Obsidian file history, Sync version history, or Git to revert a Reading-view advance if needed.
For private testing or development, build the release files:
npm ci
npm run build
Then copy main.js and manifest.json into:
<vault>/.obsidian/plugins/dynamic-notes/
There is no styles.css because Dynamic Notes does not use custom styles. Enable the plugin in Obsidian and reload it after each development rebuild.
Use a dedicated test vault before relying on any early-release plugin with important notes.
npm ci
npm test
npm run lint
npm run build
The pure parser, validator, and transformation engine are in src/flow. Their automated tests include validation failures and Markdown-to-Markdown golden fixtures.
Dynamic Notes is shipped through the Obsidian Community plugins directory and remains an early-release project. The persistent Markdown format is intentionally conservative, but long-term format stability is not yet guaranteed.
Dynamic Notes is released under the MIT License.
The original version 0.1 format contract, safety model, and architecture are preserved in DESIGN.md as a historical design record.