README file from
GithubBullet 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.