-
-
Notifications
You must be signed in to change notification settings - Fork 71
Description
Please fill out these Check-boxes
- I checked for existing similar feature requests
- I have read the docs and checked that the feature I am requesting is not already implemented
- My feature request consists of only one feature
Is your Feature Request related to a Problem or Annoyance?
The current implementation of Meta Bind input fields, particularly for properties like status, that have a predefined set of values, creates inconsistency in the user experience compared to Obsidian's standard features. For instance, Obsidian's built-in date picker for properties with the 'date' type appears directly in the frontmatter, allowing for intuitive editing. In contrast, Meta Bind input fields are placed in the note body, visually disconnected from the frontmatter where the property is defined.
This discrepancy not only affects UX consistency but also poses a risk of data inconsistency. Users can manually edit the frontmatter property, potentially entering invalid values that don't match the predefined options in the Meta Bind input field. This can lead to data integrity issues and complicate later queries (e.g., with Dataview).
Describe the Feature you'd like
I propose implementing a feature to display Meta Bind input fields (such as inlineSelect) directly within the frontmatter section. This would function similarly to Obsidian's built-in date picker, where the input field appears inline with the property definition.
Key aspects of this feature:
- Input fields (e.g., inlineSelect) appear directly in the frontmatter when editing a note.
- The frontmatter property is automatically updated when using the input field.
- Manual editing of the property in the frontmatter is either prevented or validated against the predefined options.
This feature would enhance user experience by providing a consistent interface for property editing, regardless of whether it's a built-in Obsidian feature or a Meta Bind input. It would also ensure data integrity by restricting inputs to predefined valid options.
Alternatives
An alternative approach could be to make all properties referenced by Meta Bind input fields read-only in the frontmatter. This would force users to use the input fields in the note body to modify these properties, preventing manual edits and potential data inconsistencies. However, this solution is less ideal from a UX perspective as it doesn't address the disconnect between property definition and editing interface.
Additional Context
This feature would be particularly useful for properties that have a predefined set of values, such as status fields (e.g., "Draft", "In Progress", "Final"). It would align the functionality of Meta Bind more closely with Obsidian's native features.
I really love this plugin. But believe it or not: the very first thing I tried after installing it was this:
---
status: `INPUT[select(option(Draft), option(InProgress), option(Final)):status]`
---
... and then I got instantly disappointed because it didn't work ;-)
Of course, it's because the backtick character is not allowed within the frontmatter and throws a syntax error. But maybe there is a solution that would align the functionality of Meta Bind with the YAML syntax of the frontmatter?