Nested Properties

approved

by Michael Naumov

Allows to view/edit nested frontmatter properties. - This plugin has not been manually reviewed by Obsidian staff.

38 stars7,280 downloadsUpdated 16d agoMIT

Nested Properties

Buy Me a Coffee GitHub release GitHub downloads Coverage: 100%

YAML frontmatter nests, but Obsidian's Properties editor does not. Give a note a nested structure and the panel shows you nothing useful — the values are there in the file, and the only way to read or change them is to edit the raw YAML by hand and hope you get the indentation right.

This plugin renders nested objects and arrays as a collapsible tree in the Properties panel, where you can read them, edit them, change their types, and rename or delete a nested key across the whole vault.

---
level1simple: simple1
level1Nested:
  level2simple: simple2
  level2Nested:
    level3simple: simple3
    level3Nested:
      level4simple: simple4
      level4Nested:
        level5simple: simple5
---

Inspired by this feature request.

Without the plugin: nested values have nowhere to go

More screenshots
With it: every nested key on its own row Arrays nest too, including arrays of objects Cut, copy, paste or remove any node Rename a nested key in every note at once Without the plugin: nested values have nowhere to go With it: every nested key on its own row Arrays nest too, including arrays of objects Cut, copy, paste or remove any node Show long keys in full instead of truncated

Demo vault

The documentation is a demo vault. Every feature has a note whose own frontmatter demonstrates it — open the note, look at the Properties panel, and you are looking at the feature.

Start reading here — it is plain markdown, so it works on GitHub with nothing installed.

A copy of the vault ships with every release. You can access it via any of the following:

  1. Running the Nested Properties: Open demo vault command.
  2. Downloading nested-properties-demo-vault.zip from the Releases. It unzips into a single nested-properties-demo-vault-<version> folder.
  3. Browsing its source in demo-vault/ in this repository.

What it does

Initial expand level

A nested property arrives collapsed by default, and a collapsed row is readable on its own: it shows a one-line preview of its content rather than an opaque { ... }, with any complex value inside it elided so the row stays one line tall.

If you would rather some of it arrived already open, set Settings → Nested Properties → Initial expand level1 opens the nested property but not its children, 2 opens the children too, and so on. An array index counts as a level of its own, so in generated.foo.0 the array item sits one level below generated.foo.

A note can override the setting for itself:

---
nestedProperties:
  initialExpandLevel: 2
---

Installation

The plugin is available in the official Community Plugins repository.

Beta versions

To install the latest beta release of this plugin (regardless if it is available in the official Community Plugins repository or not), follow these steps:

  1. Ensure you have the BRAT plugin installed and enabled.
  2. Click Install via BRAT.
  3. An Obsidian pop-up window should appear. In the window, click the Add plugin button once and wait a few seconds for the plugin to install.

Debugging

By default, debug messages for this plugin are hidden.

To show them, run the following command in the DevTools Console:

window.DEBUG.enable('nested-properties');

For more details, refer to the documentation.

Changelog

All notable changes to this project will be documented in the CHANGELOG.

Contributing

Contributions are welcome — see CONTRIBUTING to get set up.

Support

Buy Me A Coffee

My other Obsidian resources

See my other Obsidian resources.

License

© Michael Naumov

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.