Dynamic Notes

by deadhedd
5
4
3
2
1
Score: 51/100

Description

Obsidian plugin for moving structured Markdown blocks through local workflows with no hidden per-note state.

Reviews

No reviews yet.

Stats

2
stars
113
downloads
0
forks
66
days
14
days
24
days
1
total PRs
0
open PRs
0
closed PRs
1
merged PRs
0
total issues
0
open issues
0
closed issues
28
commits

Latest Version

25 days ago

Changelog

Dynamic Notes 0.2.1

Small terminology and maintenance update.

Changed

  • Renamed the validation command to Dynamic Notes: Validate active note to match Obsidian terminology.
  • Cleaned up development tooling configuration.

There are no changes to Dynamic Notes workflow behavior or note format in this release.

README file from

Github

Dynamic Notes

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.

Installation

Install Dynamic Notes from the Obsidian Community plugins directory:

  1. Open Settings → Community plugins in Obsidian.
  2. Select Browse, search for Dynamic Notes, then select Install.
  3. Enable Dynamic Notes after installation.

For a higher-level explanation of the workflow and design, see Dynamic Notes: A Small Obsidian Workflow Plugin.

Example use cases

  • Project workflows that promote the next scoped task when the current one is complete.
  • Procedures and checklists that reveal one step at a time.
  • Study sequences that move the next topic into focus.
  • Maintenance routines that preserve completed work as a record.
  • Daily notes, where the same workflow can guide the current part of the day.

Features

  • Dynamic Notes: Validate active note checks a note before any change is made.
  • Dynamic Notes: Advance moves the current Now block to Done and promotes the first Later block.
  • Dynamic Notes: Reset flow restores the original queue: completed blocks first, then the current block and the remaining Later blocks.
  • The Advance command works in Reading view and Editing view, and is also available from the left ribbon.
  • Editing-view advances are applied as one editor update and can normally be undone with one ordinary Obsidian undo.
  • The plugin uses documented Obsidian APIs and has no Node.js or Electron runtime dependency, so it is designed for mobile compatibility.

Dynamic Notes intentionally does not add automatic advancement, scheduling, recurrence, settings, telemetry, network access, or workflow state outside the note.

Markdown format

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.

Usage

  1. Create or open a note using the format above.
  2. Run Dynamic Notes: Validate active note from the Command palette to confirm the note is valid.
  3. Run Dynamic Notes: Advance to complete the current block and promote the next one.
  4. Run Dynamic Notes: Reset flow to restart the queue. It preserves each block's Markdown while normalizing whitespace inside managed regions.
  5. Optionally assign keyboard shortcuts to Dynamic Notes commands in Settings → Hotkeys, or use the left-ribbon Advance button.

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.

Development installation

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.

Development

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.

Status

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.

License

Dynamic Notes is released under the MIT License.

Design

The original version 0.1 format contract, safety model, and architecture are preserved in DESIGN.md as a historical design record.