Bullet Depth Markers
approvedby michael-5653
Keeps unordered list markers (-, *, +) in sync with nesting depth, both in the file and on screen. - This plugin has not been manually reviewed by Obsidian staff.
Bullet Depth Markers
Child bullets get a different marker. In the file. Not just on screen.
- Framing
* Layout
+ Gridlines
- Column A ← depth 4, cycle repeats
* Inspection
Depth 1 is -. Depth 2 is *. Depth 3 is +. Then it repeats.
Shows as ● ○ ▪ in both Live Preview and Reading view.
Why not a CSS snippet
CSS only changes the look. Your file stays - all the way down.
This changes the file. So export, grep and diffs see the structure too.
Install
Do one of these. Then in Obsidian: Settings → Community plugins → Reload → enable Bullet Depth Markers.
Mac
git clone https://github.com/MichaelNguyen5653/Bullet-Depth-Markers.git
cd Bullet-Depth-Markers
./install.sh ~/Documents/YourVault
Windows (Git Bash)
git clone https://github.com/MichaelNguyen5653/Bullet-Depth-Markers.git
cd Bullet-Depth-Markers
./install.sh "/c/Users/YOU/Documents/YourVault"
Manual (any OS)
Copy these 3 files:
main.js
styles.css
manifest.json
Into this folder (make it if missing):
YourVault/.obsidian/plugins/bullet-depth-markers/
How it works
Takes no hotkeys. Obsidian indents like normal. The plugin fixes the marker right after. So it works with Tab, drag, paste — anything.
- Undo is one step.
- Cursor never jumps. One character swaps for one character.
Leaves alone
- Numbered lists. Keep their numbers. Still count as a level.
- Code blocks, frontmatter,
---. - Old notes. A list is only fixed when you edit it.
Checkboxes do change. - [ ] becomes * [ ]. Still a checkbox.
Settings
Marker sequence. Default - * +. Only -, * and + are allowed — nothing else
is a real Markdown list marker.
Dev
No build step. Obsidian loads main.js as-is.
./run-tests.sh
Uses node's built-in test runner. No node? It falls back to VS Code's Electron binary.
The core of main.js is pure functions, so tests run outside Obsidian.
See DESIGN.md for the reasoning.
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.