Hey, all - I’m entirely new to Obsidian, so curious what’s possible. Is it possible to create different object types (like define a schema/class, then make and organise objects of that type)? I see the spreadsheet/database view is fairly close, so I’m wondering how far it can go.
For example, a Character might have a name (simple text field), origin location (a linked Location object), etc. Or a FlavorScores item might have 5 floats from 0 to 1 (sweetness, sourness, etc). And I’d like to be able to just click some button or call some command like “Create new FlavorScores” to get a base file with the predefined fields/properties, with empty or default values.
What’s the closest we can get to this idea in current Obsidian? I’m a coder (Python, C#, others), so definitely open to the idea of making plugins or similar.
When reading your request I’m thinking about the Metadata menu plugin, which allows for file classes which predefines properties for that class. It also provides various tables, and easy to access table views of notes of that class. I believe this would be a scheme particular useful for use cases like yours.
And when it’s not enough, you might look into extending with other plugins like Dataview to do queries against your data, or Templater to help you build larger templates for each of your classes. All of these can be combined where only your creativitiy and coding capabilities are the limit.
Even the core Template plugin enables defining basic structure and properties for various classes/objects, and if you add Templater it becomes far more powerful. I used to use Metadata plugin for ability to predefine property values, but dropped it ever since Obsidian natively remembers what you’ve already used.
Once you have a template, you might want some automatic way of triggering it. I have a basic per-folder setup (available from Templater), so each time I create a note in say Books folder, it inserts my book template. You might want to look into QuickAdd plugin for more versatility.