obsidian-structured-notes
v1.7.1
Published
A plugin that provides a basis for creating structured notes in Obsidian.
Downloads
50
Readme
Obsidian Structured Notes Plugin
TODO - links
Why use this plugin?
Quick show of hands from the notes-as-data crowd out there - who wishes we had type checking for note properties? An easier way to programmatically query for certain types of notes? What about a way to categorize and manipulate notes? Better yet, who wishes we had an easier way of creating notes with default properties, in a certain folder, and with customizable initialization hooks that can do anything we want?
Gee, that sounds nice. Someone should make a plugin for that.
Structured Notes is a plugin that - as the title would suggest - provides better structure for developers to add scripting functionality to their notes. Some of its features include
- Type checking for note properties when writing plugins.
- Easy-to-extend note initialization scripting, including default file placement, property values, and more.
- An API allowing you to query notes with a certain property structure, notes of a certain type, etc.
This plugin, on its own, doesn't really do all that much. However, it provides an extendable engine for nerds with too much free time to automate away some of the pain points of note creation and querying.
But NateHawk85, I already use Templater for my note templates.
So do I, and I highly recommend doing so if you don't already! After the 50th time of writing
await tp.file.move(`Meetings/Boring/${meetingNoteTitle}`)
in a template file, I asked myself, "What if I could write
something that does exactly the same functionality, but... different? In a way that separates scripting from the actual
templating experience?"
TODO - add more later, maybe with a tidbit less sass
Checklist prior to v1.0.0 release
Technical
- [x] Create base structured note initializer
- [ ] Allow base structured note initializer to evaluate external JS code
- [ ] Create customizable "core" fields, with initialization scripts and/or default values for each field
- [ ] Create strict type analysis on each note
- [ ] Command that runs comparisons against all notes in the current vault, reporting on fields that are missing/invalid field types
- [ ] Create script to create all missing fields on missing notes with a default value and/or evaluation script
- [ ] Create JSON import/export format
- [ ] Import/export structured note types
- Include field initialization scripts
- [ ] Export Typescript types from current structured note
- [ ] Import/export structured note types
UI
- [ ] Create commands for technical items
- [ ] Expand settings to allow for users to create their own structured note types
- [ ] Add importer menu
- [ ] Add exporter menu