⭐ Looking for contributors ⭐ I unfortunately can't dedicate much time anymore on Metadata Menu, but there are many things that still need to be done: UI, new types, go deeper in data structure management and integration with canvas and properties, documentation...
You're more than welcome to submit PRs, and I will gladly help and mentor :)
This plugin is made for data quality enthusiasts: access and manage the metadata of your notes in Obsidian.
Metadata Menu adds context menu items to modifiy target note's frontmatter fields and "inline fields" (dataview syntax) by right-clicking on the link, or within dataview tables
You can define preset types and values for those fields globally in the plugin's settings or on a file-by-file basis thanks to fileClass definition
It also enables frontmatter of inline-field autocompletion with suggested values based on preset values.
For a complete walk-through, here is an excellent showcase by Danny Hatcher: complete demo
For complete documentation : https://mdelobelle.github.io/metadatamenu
demo 1 : basic features, settings and field types
demo 2: autocompletion and "in sentence" fields commands
demo 3: File type fields
demo 4: Date type fields
demo 5: Templates for Input type fields:
demo 6: FileClass
demo 7: Time shifting for spaced repetition or date postponing
demo 8: Lookup fields
demo 9: Lookup fields as bullet list
demo 10: Better Select and File fields
demo 11: Supercharged Tags, multi fileClasses and metadata button
demo 12: Fileclass View
demo 13: Canvas fields
demo 14: Create a Kanban board with Canvas Group fields
demo 15: Nested fields (Object, Object List, Yaml, JSON)
demo 16: Fileclass tableviews
Metadata Menu can manage any metadata field located in frontmatter (YAML syntax) or in the body of the note with the syntax field:: (dataview style)
Metadata Menu gives a type to each field. Available types are:
Input(free text) : this is the default type applied to each field if nothing is set for this field (see #Field settings). it willAccept any valueBoolean: a field that canAccept true or falseor null valueNumber: a field that canAccept a number(float) value, optionaly within a range (min,max) and can be in/decremented by astepvalue (default 1)Select: a field that canAccept a single value from a listMulti: a field that canAccept multiple values from a listCycle: a field that willCycle through values from a listFile: a field that willAccept a link to a file from your vaultMultiFile: a field that willAccept multiple linksMedia: a field that willAccept a link to a media file from your vaultMultiMedia: a field that willAccept multiple links to media filesDate: a field that willAccept a dateDateTime: a field that willAccept a date with timeTime: a field that willAccept a timeLookup: a field that willAccept a lookup queryCanvas: a field that willUpdate with links in a canvasCanvas Group: a field that willUpdate with groups in a canvasCanvas Group Link: a field that willUpdate with groups links in a canvasJSON: a field that willAccept a JSON objectYAML: a field that willAccept a YAML objectObject: a field that willAccept a collection of fieldsObject List: a field that willAccept a list of collection of fields
By default each field is an Input
You can define a field setting for each field.
A field setting is composed of:
- a name
- a type (see ## Field Types list above)
- options depending on the type
A field setting can defined in:
- Metadata Menu settings (see # Metadata Menu Settings)
- in a fileClass note (see # Fileclass)
NB: if a field has a setting defined in the Metadata Menu settings AND in a fileClass note, the setting of the fileClass will take the priority over the setting defined in Metadata Menu settings
a Field can be modified or added from several locations:
- autocompletion within the editor mode
- Obsidian and plugins menus : file explorer, note, calendar, context menu of a link, many other plugins not fully tested ...
- dataview table if you have dataview plugin installed
- autocomplete conflicts with Various Complements plugin