Alpha Bullet

by Mara-Li
5
4
3
2
1
Score: 52/100

Description

The AlphaBullet plugin brings natural order sorting to unordered markdown lists, making it easier to organize items like inventories, glossaries, and worldbuilding content. It supports ascending and descending sort options and can group items under headings based on their initial letters. Users can trigger sorting manually via commands or set up YAML frontmatter for per-file auto-sorting. The plugin also allows configuration of group and item sort orders independently, offering flexibility for complex workflows like reverse glossaries.

Reviews

No reviews yet.

Stats

11
stars
1,664
downloads
0
forks
306
days
201
days
201
days
1
total PRs
0
open PRs
0
closed PRs
1
merged PRs
1
total issues
0
open issues
1
closed issues
0
commits

Latest Version

7 months ago

Changelog

0.1.3 (2025-10-20)

Bug Fixes

  • should sort with HTML tags too! (1adbcb8)

README file from

Github

AlphaBullet

AlphaBullet is a simple yet powerful Obsidian plugin that sorts your unordered markdown lists using natural order sorting — with optional grouping by the initial letter.

Whether you're organizing notes, inventories, glossaries, or worldbuilding content, keeping things neat and readable has never been easier.

✨ Features

  • Sort unordered lists alphabetically using natural order (e.g., item2 comes before item10)
  • Sort in ascending (A → Z) or descending (Z → A) order
  • Optionally group items under a heading based on their first letter (## A, ## B, etc.)
  • Supports YAML frontmatter for per-file auto-sorting
  • Plugin-wide default settings available
  • Multi-language support (English & French)

⚙️ How to Use

  1. Open a note containing the list you want to sort.
  2. Open the command palette (Ctrl / Cmd + P)
  3. Search for “AlphaBullet”
  4. Choose a command:
    • Sort ascending
    • Sort descending
    • Create glossary, with options:
      • Full ascending
      • Full descending
      • Ascending (groups descending, items ascending)
      • Descending (groups descending, items ascending)
    • Sort based on frontmatter
  5. Your list will be instantly sorted!

[!TIP] You can also use the editor context menu to sort a selected list!

🔍 Understanding "Grouping" and "Items" Sorting

AlphaBullet uses natural order sorting, which means values like item2 are placed before item10 (unlike strict ASCII sorting).

When grouping is enabled (group: true), items are organized under headings based on their initial letter:

## A
- Apple
## B
- Banana

There are two levels of sorting:

  1. Group headings (e.g., ## A, ## B) can be sorted in ascending or descending order.
  2. Items within each group are also sorted alphabetically.

🧠 Tricky part: The sml_glossary_desc setting lets you sort groups in descending order while keeping items inside each group sorted ascending.

This is useful when creating reverse glossaries or highlighting last-letter groups first while keeping internal coherence.

🛠 Frontmatter Configuration

You can configure sorting behavior directly in your note using YAML frontmatter:

---
sml_sort: true              # Enable sorting
sml_descending: false       # Sort order: false = A→Z, true = Z→A
sml_group: true             # Enable grouping by first letter
sml_level: 2                # Heading level used for group titles (## = level 2)
sml_glossary_desc: false    # Sort groups descending, but items ascending
---

💡 You can also set these options globally via the plugin settings in Obsidian.

📦 Installation

  • Coming soon to Obsidian’s Community Plugins
  • Available via BRAT: https://github.com/Mara-Li/obsidian-alpha-bullet
  • Manual installation:
    1. Download the latest release
    2. Unzip the folder into .obsidian/plugins/
    3. Reload Obsidian and enable the plugin

🌐 Languages

  • English
  • French

Want to help translate?

  1. Fork the repository
  2. Add your translation to src/i18n/locales/<lang>.json
  3. Register your locale in i18n/i18next.ts

Use obsidian-translations or tp.obsidian.moment.locale() to find your language code.

🙋 Support & Contributions

Found a bug? Have a feature request?
Please open an issue or pull request on GitHub.

✏️ English isn’t my native language — feel free to suggest improvements! But please use English for issues so others can follow along.

❤️ Credits

Huge thanks to Jesse Hines for the wdio-obsidian-service, which allowed me to run automated tests in a real Obsidian vault — a dream come true for a QA engineer!