Bullet Depth Markers

by michael-5653
5
4
3
2
1
Score: 50/100

Description

Reviews

No reviews yet.

Stats

0
stars
23
downloads
0
forks
5
days
5
days
5
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
5
commits

Latest Version

6 days ago

Changelog

First release.

Child bullets get a different marker, written into the file rather than only styled. Depth 1 is -, depth 2 is *, depth 3 is +, then it repeats. Rendered as ● ○ ▪ in both Live Preview and Reading view.

  • Takes no hotkeys. Markers stay correct however the structure changed — Tab, drag, paste, or another plugin.
  • Undo is a single step.
  • Rewrites swap one character for one character, so the cursor never drifts.
  • Numbered lists, code blocks, frontmatter and thematic breaks are left alone.
  • Marker sequence is configurable.

README file from

Github

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.