⭐ 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 value
Boolean
: a field that canAccept true or false
or null valueNumber
: a field that canAccept a number
(float) value, optionaly within a range (min
,max
) and can be in/decremented by astep
value (default 1)Select
: a field that canAccept a single value from a list
Multi
: a field that canAccept multiple values from a list
Cycle
: a field that willCycle through values from a list
File
: a field that willAccept a link to a file from your vault
MultiFile
: a field that willAccept multiple links
Media
: a field that willAccept a link to a media file from your vault
MultiMedia
: a field that willAccept multiple links to media files
Date
: a field that willAccept a date
DateTime
: a field that willAccept a date with time
Time
: a field that willAccept a time
Lookup
: a field that willAccept a lookup query
Canvas
: a field that willUpdate with links in a canvas
Canvas Group
: a field that willUpdate with groups in a canvas
Canvas Group Link
: a field that willUpdate with groups links in a canvas
JSON
: a field that willAccept a JSON object
YAML
: a field that willAccept a YAML object
Object
: a field that willAccept a collection of fields
Object 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