|
|
||
|---|---|---|
| .github/workflows | ||
| constants | ||
| images | ||
| models | ||
| services | ||
| settings | ||
| ui | ||
| .editorconfig | ||
| .eslintignore | ||
| .eslintrc | ||
| .gitignore | ||
| .npmrc | ||
| esbuild.config.mjs | ||
| LICENSE | ||
| main.ts | ||
| manifest.json | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| styles.css | ||
| tsconfig.json | ||
| version-bump.mjs | ||
| versions.json | ||
Note Status for Obsidian
Enhance your Obsidian workflow with a powerful status tracking system for your notes. Keep track of whether your notes are active, on hold, completed, or dropped - or create your own custom statuses.
Features
- Status Assignment: Mark notes with statuses (active, on hold, completed, dropped)
- Multiple Statuses: Apply more than one status to a single note
- File Explorer Integration: View status icons directly in your file explorer
- Status Bar: Quick access status indicator in the editor
- Dropdown Menu: Easily change status from the editor toolbar
- Status Pane: Dedicated view that organizes notes by status
- Batch Updates: Apply statuses to multiple files at once
- Custom Statuses: Create your own statuses with icons and colors
- Status Templates: Choose from predefined templates or create your own
- Highly Customizable: Configure where and how statuses appear
Installation
Coming soon to the Obsidian Community Plugins marketplace!
Marketplace Installation (Recommended)
Once available in the marketplace:
- Open Obsidian → Settings → Community plugins
- Disable Safe mode
- Click "Browse" and search for "Note Status"
- Click Install and Enable
Manual Installation
- Download the Plugin:
- Grab the latest release from the GitHub Releases page.
- Download the files
main.js,styles.cssandmanifest.json
- Install in Obsidian:
- Open your Obsidian vault and navigate to
.obsidian/plugins/. - Create a folder named
obsidian-note-statusinto this directory. - Copy the downloaded files in the
obsidian-note-statusfolder.
- Open your Obsidian vault and navigate to
- 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.
User Guide
Basic Usage
1. Assign Status from the Toolbar
The simplest way to set a note's status is using the toolbar button:
- Open any note
- Click the status icon in the toolbar (looks like a "?" by default)
- Select a status from the dropdown
- The status will be applied and visible in both toolbar and status bar
2. Status Bar
The status bar at the bottom of your editor shows the current status of your note:
- When multiple statuses are enabled, all applied statuses will be displayed here
3. Status Pane
The Status Pane provides an overview of all your notes grouped by status:
To open the Status Pane:
- Click the status pane icon in the left sidebar
- Use the command palette: "Open status pane" In the Status Pane you can:
- View all notes grouped by status
- Click on any note to open it
- Search for specific notes
- Toggle between compact and standard views
- Right-click on notes for more options
4. File Explorer Integration
Status icons appear directly in your file explorer:
- Right-click on any file to change its status
- Select multiple files to batch update their statuses
Advanced Usage
Multiple Statuses
When enabled in settings, you can assign multiple statuses to a single note:
To add additional statuses:
- Open the status dropdown
- Click on another status to add it
- Click on an active status to remove it
Batch Updates
To update multiple files at once:
- Select multiple files in the file explorer (using Ctrl/Cmd or Shift)
- Right-click and choose "Change status"
- Select whether to replace or add the status
- Choose the status to apply
Configuration
Status Management
Access plugin settings via Settings → Note Status
Status Templates
Choose from predefined status templates:
- Colorful workflow: A colorful set of workflow statuses with descriptive icons
- Minimal workflow: A simplified set of essential workflow statuses
- Academic research: Status workflow for academic research and writing
- Project management: Status workflow for project management and tracking
Custom Statuses
Create your own statuses by:
- Clicking "Add Status" in settings
- Setting a name, icon, color, and optional description
- Saving your settings
Display Options
Configure how statuses are displayed:
- Show/hide status bar
- Auto-hide status bar when status is unknown
- Show/hide status icons in file explorer
- Hide unknown status in file explorer
- Toggle compact view in status pane
- Enable/disable multiple statuses mode
- Customize frontmatter tag name
Commands
The plugin provides several commands accessible via the Command Palette:
Open status pane- Opens the status viewRefresh status- Refreshes current note's statusAdd status to current note- Shows status menuInsert status metadata- Adds status frontmatterForce refresh user interface- Complete UI refresh
Technical Details
Frontmatter Format
Status information is stored in your note's frontmatter using the following format:
---
obsidian-note-status: ["active"]
---
Multiple statuses:
---
obsidian-note-status: ["active", "inProgress"]
---
The frontmatter tag name can be customized in settings.
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
│ │ └── status-templates.ts # Predefined status templates
│ ├── models/ # TypeScript interfaces and types
│ │ └── types.ts # Core type definitions
│ ├── ui/ # UI components
│ │ ├── components/ # Core UI components
│ │ │ ├── status-pane-view.ts # Status pane sidebar
│ │ │ ├── status-dropdown.ts # Dropdown management
│ │ │ ├── status-dropdown-component.ts # Dropdown UI component
│ │ │ └── status-bar.ts # Status bar component
│ │ ├── integrations/ # External integrations
│ │ │ └── explorer-integration.ts # File explorer integration
│ │ └── menus/ # Menu handlers
│ │ └── status-context-menu.ts # Context menu handlers
│ ├── services/ # Core services
│ │ ├── status-service.ts # Status management logic
│ │ └── style-service.ts # Dynamic styling service
│ ├── utils/ # Utility functions
│ │ └── 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
- Clone this repository:
git clone https://github.com/devonthesofa/obsidian-note-status.git
cd obsidian-note-status
- Install dependencies:
npm install
- Build the plugin:
npm run build
- For development with auto-rebuilding:
npm run dev
- The compiled plugin will be in the root directory, ready to copy into
.obsidian/plugins/.
Contributing
Contributions welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch:
git checkout -b feature/my-new-feature - Commit your changes:
git commit -am 'Add some feature' - Push to the branch:
git push origin feature/my-new-feature - Submit a pull request
- Report issues or suggest features via the Issues tab.
Roadmap
The following features and improvements are planned for upcoming releases:
Short-term
- Bug Fix: Resolve selection context issue when changing status of a single file while multiple files are selected in the explorer view
- Batch Modification Enhancement: Implement a modal dialog with file preview and status selection for more intuitive batch operations
- Dropdown Refinement: Restructure status options to be grouped by categories (workflow, templates, custom) with visual separators
- Obsidian API Compliance: Refactor code to follow Obsidian guidelines for better performance and compatibility:
- Use proper event lifecycle management
- Implement debounced operations for file operations
- Improve plugin teardown process to prevent memory leaks
Medium-term
- Export/import configurations: Share your status setups with others
Long-term
- Canvas integration: Show status on canvas cards
- Graph view integration: Visualize notes by status in graph view
- Mobile optimization: Improved experience on mobile devices










