# Metadata Menu plugin for Obsidian
The Metadata Menu plugin is a powerful metadata management tool for [[Obsidian]] designed for "data quality enthusiasts" who want structured, consistent property handling across their vault.
## Why Use Metadata Menu?
**Without Metadata Menu**:
- Manually type field names (risk of typos)
- Remember all valid values for constrained fields
- Manually format dates, lists, and complex types
- No type validation or autocompletion
**With Metadata Menu**:
- Click to add fields from pre-defined schemas
- Select from dropdown menus with valid values only
- Use date pickers, number inputs, and type-specific editors
- Autocompletion with `:` (frontmatter) or `::` (inline)
- Automatic validation prevents data quality issues
## Core Capabilities
**Metadata Management Interfaces**:
The plugin provides multiple ways to manage note properties:
- **Context menu**: Right-click on notes to edit properties
- **Command palette**: Quick access via commands
- **Dedicated buttons**: UI controls for property editing
- **Dataview integration**: Manage properties directly from Dataview tables
**Property Editing**:
- Modify frontmatter properties with type-safe editors
- Support for inline fields (Dataview-style)
- Autocompletion for field names and values
- Bulk property editing across multiple notes
## FileClass Concept
The plugin's key feature is **fileClass** - a system for defining metadata schemas that can be applied globally or per-file basis.
**What is a fileClass?**:
A fileClass is a template that defines:
- Which properties (fields) a note type should have
- The type of each property (text, number, date, select, etc.)
- Allowed values for constrained properties (e.g., status options)
- Field ordering and display configuration
- Icons for visual note type identification
**How fileClass works**:
1. Create a fileClass file defining the schema
2. Associate it with notes via:
- Adding `fileClass` property directly to notes
- Defining tags that trigger automatic association
- Specifying file paths that match the class
3. Plugin automatically applies the schema to matching notes
4. Properties become available with appropriate editors and validation
**Example**: A "Book" fileClass might define:
- `title` (text field)
- `authors` (multi-select field)
- `rating` (select field with ★★★★★ options)
- `status` (select: To Read, Reading, Read)
- `pages` (number field)
Once applied, the plugin provides dropdown menus with only valid values, date pickers for date fields, and ensures consistency across all book notes.
## Supported Field Types
The plugin supports a wide range of field types:
**Basic Types**:
- **Input**: Simple text fields
- **Number**: Numeric values with optional constraints
- **Date**: Date picker with format specification
- **Boolean**: True/false checkboxes
- **Select**: Single choice from predefined list
- **Multi**: Multiple selections from list
**Advanced Types**:
- **File**: Links to other notes
- **Lookup**: Reference properties from linked notes
- **Object**: Nested property structures
- **Object List**: Arrays of nested objects
- **YAML**: YAML-formatted data
- **JSON**: JSON-formatted data
Each field type provides appropriate editing interfaces and validation.
## Visual Identification
FileClass definitions can assign icons to note types:
- Icons appear in tab titles
- Displayed within notes (if configured)
- Shown in file explorer
- Visible in quick switcher and search results
This creates a visual coding system making note types instantly recognizable.
## Use Cases
**Structured Knowledge Management**:
- Define schemas for different note types
- Ensure consistent property usage
- Enable reliable queries and filtering
- Support advanced Dataview queries
**Workflow Automation**:
- Properties drive automated processing
- Status tracking with constrained values
- Bulk property updates for workflow changes
- Integration with other plugins via properties
**Data Quality**:
- Prevent typos in property names
- Ensure valid property values
- Maintain referential integrity
- Support vault-wide refactoring
## Benefits
- **Consistency**: Standardized metadata across notes of same type
- **Efficiency**: Quick property editing with appropriate interfaces
- **Reliability**: Type validation prevents data quality issues
- **Scalability**: Centralized management works for vaults with thousands of notes
- **Flexibility**: Per-file or global schema application
- **Integration**: Works with Dataview, Obsidian Databases, and other metadata-aware plugins
## References
- Official Documentation: https://mdelobelle.github.io/metadatamenu
- Source Code: https://github.com/mdelobelle/metadatamenu