# 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