No description
Find a file
2025-04-17 12:36:34 +02:00
.github/workflows feat: add release workflow 2025-04-03 16:08:37 +02:00
constants feat: add description; fix status propagation 2025-04-16 16:47:56 +02:00
models feat: add description; fix status propagation 2025-04-16 16:47:56 +02:00
services feat: add description; fix status propagation 2025-04-16 16:47:56 +02:00
settings feat: add description; fix status propagation 2025-04-16 16:47:56 +02:00
ui feat: reusable dropdown component 2025-04-17 12:36:34 +02:00
utils fix: work always with metadata array 2025-04-16 15:23:09 +02:00
.editorconfig Initial commit 2025-04-03 15:49:10 +02:00
.eslintignore Initial commit 2025-04-03 15:49:10 +02:00
.eslintrc Initial commit 2025-04-03 15:49:10 +02:00
.gitignore Initial commit 2025-04-03 15:49:10 +02:00
.npmrc Initial commit 2025-04-03 15:49:10 +02:00
esbuild.config.mjs Initial commit 2025-04-03 15:49:10 +02:00
LICENSE Initial commit 2025-04-03 15:49:10 +02:00
main.ts feat: reusable dropdown component 2025-04-17 12:36:34 +02:00
manifest.json chore: bump manifest version 2025-04-05 11:59:54 +02:00
package-lock.json fix: add icons when file explorer is loaded 2025-04-04 15:13:22 +02:00
package.json Initial commit 2025-04-03 15:49:10 +02:00
README.md Update README.md 2025-04-05 18:48:29 +02:00
styles.css feat: reusable dropdown component 2025-04-17 12:36:34 +02:00
tsconfig.json Initial commit 2025-04-03 15:49:10 +02:00
version-bump.mjs Initial commit 2025-04-03 15:49:10 +02:00
versions.json Initial commit 2025-04-03 15:49:10 +02:00

Obsidian Note Status Plugin

Version Obsidian

The Note Status plugin for Obsidian enhances your workflow by allowing you to assign, manage, and visualize statuses for your notes. Whether you're tracking projects, tasks, or personal notes, this plugin provides a seamless way to organize your vault with customizable statuses, a dedicated status pane, and visual indicators.

Features

  • Status Assignment: Add statuses (e.g., active, on hold, completed, dropped, unknown) to notes via frontmatter.
  • Status Pane: A sidebar view to see all notes grouped by status, with search and collapsible sections.
  • Dropdown Menu: Quickly change a note's status from a dropdown at the top or bottom of the editor.
  • Status Bar: Displays the current note's status at the bottom of the app, with toggleable visibility.
  • File Explorer Icons: Shows status icons next to note names in the file explorer for instant recognition.
  • Customization: Define your own statuses, icons, and colors in the settings, and adjust UI preferences like position and auto-hiding.
  • Commands: Includes commands to refresh statuses, insert status metadata, and open the status pane.

Installation

  1. Download the Plugin:
    • Grab the latest release from the GitHub Releases page.
    • Download the files main.js, styles.css and manifest.json
  2. Install in Obsidian:
    • Open your Obsidian vault and navigate to .obsidian/plugins/.
    • Create a folder named obsidian-note-status into this directory.
    • Copy the downloaded files in the obsidian-note-status folder.
  3. Enable the Plugin:
    • In Obsidian, go to Settings > Community Plugins.
    • Ensure "Safe Mode" is turned off.
    • Find "Note Status" in the list and toggle it on.

Note: This plugin is not yet available in the Obsidian Community Plugin store but will be submitted soon!

Usage

Setting a Status

  • Open a note and use the command Insert Status Metadata to add a status: unknown field in the frontmatter.
  • Change the status manually in the frontmatter, or use the dropdown menu (click the status bar or right-click in the editor and select "Change Note Status").

Status Pane

  • Click the ribbon icon (a bar chart) or use the Open Status Pane command to view all notes grouped by status.
  • Use the search bar to filter notes by name.

Customization

  • Go to Settings > Note Status to:
    • Toggle visibility of the dropdown, status bar, and file explorer icons.
    • Adjust positions (top/bottom for dropdown, left/right for status bar).
    • Add, edit, or remove custom statuses with unique icons and colors.

Example Frontmatter

---
status: active
---

Screenshots

image

Pasted image 20250403164128

image

  • Status Pane: image

  • Dropdown Menu: image

  • File Explorer Icons: image

Development

Project Structure

The plugin has been recently restructured with a modern, modular architecture:

note-status/
├── src/
│   ├── main.ts                 # Main plugin entry point
│   ├── constants/              # Constants and defaults
│   │   ├── icons.ts            # SVG icon definitions
│   │   └── defaults.ts         # Default settings and colors
│   ├── models/                 # TypeScript interfaces and types
│   │   └── types.ts            # Core type definitions
│   ├── ui/                     # UI components
│   │   ├── status-pane-view.ts # Status pane sidebar
│   │   ├── status-dropdown.ts  # Dropdown component
│   │   ├── status-bar.ts       # Status bar component
│   │   ├── explorer.ts         # File explorer integration
│   │   ├── modals.ts           # Modal components
│   │   └── context-menus.ts    # Context menu handlers
│   ├── services/               # Core services
│   │   ├── status-service.ts   # Status management logic
│   │   └── style-service.ts    # Dynamic styling service
│   ├── utils/                  # Utility functions
│   │   ├── dom-utils.ts        # DOM helpers
│   │   └── file-utils.ts       # File-related helpers
│   └── settings/               # Settings UI
│       └── settings-tab.ts     # Settings tab definition
└── styles.css                  # CSS styles

Prerequisites

  • Node.js and npm installed.
  • Obsidian API knowledge (TypeScript-based).

Building the Plugin

  1. Clone this repository:
git clone https://github.com/devonthesofa/obsidian-note-status.git
cd obsidian-note-status
  1. Install dependencies:
npm install
  1. Build the plugin:
npm run build
  1. The compiled plugin will be in the root directory, ready to copy into .obsidian/plugins/.

Contributing

  • Fork this repository and submit pull requests with improvements or bug fixes.
  • Report issues or suggest features via the Issues tab.

Recent Improvements

The v1.0.8 release includes:

  • Complete Code Restructuring: Modular architecture with proper separation of concerns
  • Enhanced TypeScript Usage: Improved typing and interfaces for better code reliability
  • Optimized Performance: More efficient event handling and DOM manipulation
  • Improved Developer Experience: Better project structure for easier contributions

Known Issues (Being Addressed)

  • Bug: When manually editing the status in the frontmatter after tags, a weird behavior occurs:
    status: ...
    ---
    tags:
      - calendar/daily
    ---
    It creates a new block of tags, leaving the old one outside. Needs refinement.
    
  • Improvement: Further performance optimization for batch status changes

About the Author

Aleix Soler is a professional developer who created this plugin for fun as his first contribution to the Obsidian ecosystem.

As a daily Obsidian user, Aleix wanted to bring better status management to Obsidian to enhance his own workflow.

If you find this plugin helpful:

  • Star the repository
  • 📣 Share with other Obsidian users

License

This plugin is released under the MIT License. See the LICENSE file for details.

Acknowledgments

  • Built with assistance from Claude (Anthropic) for code structuring and best practices
  • Inspired by the amazing Obsidian community and its plugin ecosystem