mirror of
https://github.com/devonthesofa/obsidian-note-status.git
synced 2026-07-22 12:30:24 +00:00
Merge pull request #31 from devonthesofa/feature/wiki-readme
Readme and wiki integration
This commit is contained in:
commit
465bb30db7
9 changed files with 1240 additions and 314 deletions
366
README.md
366
README.md
|
|
@ -2,353 +2,91 @@
|
|||
|
||||
[](https://github.com/devonthesofa/obsidian-note-status/releases) [](https://obsidian.md/plugins?id=note-status) [](https://github.com/devonthesofa/obsidian-note-status/blob/master/LICENSE)
|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Features](#features)
|
||||
- [Installation](#installation)
|
||||
- [User Guide](#user-guide)
|
||||
- [Configuration](#configuration)
|
||||
- [Performance Recommendations](#performance-recommendations)
|
||||
- [Development](#development)
|
||||
- [Roadmap](#roadmap)
|
||||
- [Support](#support-the-development)
|
||||
Track the status of your notes with a powerful, customizable status management system. Mark notes as active, completed, on hold, or create your own custom workflows.
|
||||
|
||||
## 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
|
||||
- **Large Vault Support**: Optimized for performance with pagination and filtering options
|
||||
- **📋 Status Assignment**: Mark notes with workflow statuses
|
||||
- **🎯 Multi-Status Support**: Assign multiple statuses per note
|
||||
- **📁 File Explorer Icons**: Visual indicators in the file tree
|
||||
- **🧭 Status Bar Integration**: View current status at a glance
|
||||
- **⬇️ Toolbar Dropdown**: Change statuses quickly from the editor
|
||||
- **📊 Status Pane**: Dedicated view organizing notes by status
|
||||
- **⚡ Batch Operations**: Update multiple files simultaneously
|
||||
- **🎨 Custom Statuses**: Define your own statuses
|
||||
- **🧩 Templates Library**: Use built-in templates
|
||||
- **🔧 Full Customization**: Control how and where statuses appear
|
||||
- **🚀 Performance**: Optimized for large vaults (40k+ notes tested)
|
||||

|
||||
|
||||
## Installation
|
||||
## Quick Start
|
||||
|
||||
### Marketplace Installation (Recommended)
|
||||
### Install
|
||||
|
||||
1. Open Obsidian → Settings → Community plugins
|
||||
2. Disable Safe mode
|
||||
3. Click "Browse" and search for "Note Status"
|
||||
4. Click Install and Enable
|
||||
1. **Obsidian → Settings → Community plugins**
|
||||
2. **Search "Note Status" → Install → Enable**
|
||||
|
||||
### Manual Installation
|
||||
|
||||
1. **Download the Plugin**:
|
||||
- Grab the latest release from the [GitHub Releases page](https://github.com/devonthesofa/obsidian-note-status/releases).
|
||||
- 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.
|
||||
|
||||
## User Guide
|
||||
|
||||
### Basic Usage
|
||||
|
||||
#### 1. Assign Status from the Toolbar
|
||||
|
||||
The simplest way to set a note's status is using the toolbar button:
|
||||
|
||||

|
||||
### First Use
|
||||
|
||||
1. Open any note
|
||||
2. Click the status icon in the toolbar (looks like a "?" by default)
|
||||
3. Select a status from the dropdown
|
||||
4. The status will be applied and visible in both toolbar and status bar
|
||||
2. Click the `❓` icon in toolbar
|
||||
3. Select a status (e.g., "active")
|
||||
4. Status appears in status bar and file explorer
|
||||
|
||||
#### 2. Status Bar
|
||||
## Example Workflows
|
||||
|
||||
The status bar at the bottom of your editor shows the current status of your note:
|
||||
### Personal Knowledge Management
|
||||
|
||||

|
||||
```
|
||||
💡 idea → 📝 draft → ✏️ editing → ✅ completed → 📦 archived
|
||||
```
|
||||
|
||||
- When multiple statuses are enabled, all applied statuses will be displayed here
|
||||
### Project Management
|
||||
|
||||
#### 3. Status Pane
|
||||
```
|
||||
📋 backlog → 🚦 ready → 👨💻 inDevelopment → 🧪 testing → 🚀 live
|
||||
```
|
||||
|
||||
The Status Pane provides an overview of all your notes grouped by status:
|
||||
### Academic Research
|
||||
|
||||

|
||||
```
|
||||
🔍 research → 📑 outline → ✏️ draft → 🔬 review → 📚 final
|
||||
```
|
||||
|
||||
To open the Status Pane:
|
||||
## Documentation
|
||||
|
||||
- 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
|
||||
### For Users
|
||||
|
||||
#### 4. File Explorer Integration
|
||||
- **[📚 Quick Start Guide](https://github.com/devonthesofa/obsidian-note-status/wiki/📚-Quick-Start-Guide)** - Get running in 5 minutes
|
||||
- **[📖 User Manual](https://github.com/devonthesofa/obsidian-note-status/wiki/📖-User-Manual)** - Complete feature documentation
|
||||
- **[⚙️ Configuration Guide](https://github.com/devonthesofa/obsidian-note-status/wiki/⚙%EF%B8%8F-Configuration-Guide)** - Settings and customization
|
||||
- **[🚀 Performance Tuning](https://github.com/devonthesofa/obsidian-note-status/wiki/🚀-Performance-Tuning)** - Optimize for large vaults
|
||||
|
||||
Status icons appear directly in your file explorer:
|
||||
### For Developers
|
||||
|
||||

|
||||
- **[🏗️ Architecture Overview](https://github.com/devonthesofa/obsidian-note-status/wiki/%F0%9F%8F%97%EF%B8%8F-Architecture-Overview)** - Plugin structure and design
|
||||
- **[🔧 Development Setup](https://github.com/devonthesofa/obsidian-note-status/wiki/%F0%9F%94%A7-Development-Setup)** - Contributing guide
|
||||
|
||||
- Right-click on any file to change its status
|
||||
- Select multiple files to batch update their statuses
|
||||
### Reference
|
||||
|
||||
### Advanced Usage
|
||||
- **[📝 Frontmatter Format](https://github.com/devonthesofa/obsidian-note-status/wiki/%F0%9F%93%9D-Frontmatter-Format)** - Technical specification
|
||||
|
||||
#### Multiple Statuses
|
||||
## Data Format
|
||||
|
||||
When enabled in settings, you can assign multiple statuses to a single note:
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
To add additional statuses:
|
||||
|
||||
1. Open the status dropdown
|
||||
2. Click on another status to add it
|
||||
3. Click on an active status to remove it
|
||||
|
||||
#### Batch Updates
|
||||
|
||||
To update multiple files at once:
|
||||
|
||||
1. Select multiple files in the file explorer (using Ctrl/Cmd or Shift)
|
||||
2. Right-click and choose "Change status"
|
||||
3. Select whether to replace or add the status
|
||||
4. Choose the status to apply
|
||||
|
||||

|
||||
|
||||
#### Large Vault Performance
|
||||
|
||||
If you have a large vault with thousands of notes, use these features for better performance:
|
||||
|
||||
1. Enable "Exclude unassigned notes from status pane" in settings
|
||||
2. Use the search function to filter notes 
|
||||
3. Use pagination controls to navigate through large status groups 
|
||||
|
||||
## 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:
|
||||
|
||||
1. Clicking "Add Status" in settings
|
||||
2. Setting a name, icon, color, and optional description
|
||||
3. 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
|
||||
- **Exclude unassigned notes from status pane** (recommended for large vaults)
|
||||
- Toggle compact view in status pane
|
||||
- Enable/disable multiple statuses mode
|
||||
- Customize frontmatter tag name
|
||||
|
||||
## Performance Recommendations
|
||||
|
||||
If you have a large vault (1000+ notes), consider these settings for optimal performance:
|
||||
|
||||
1. Enable "Exclude unassigned notes from status pane"
|
||||
2. Enable "Hide unknown status in file explorer"
|
||||
3. Use specific searches rather than browsing all notes
|
||||
4. Consider using "Compact view" in the status pane
|
||||
|
||||
## Commands
|
||||
|
||||
The plugin provides several commands accessible via the Command Palette:
|
||||
|
||||
- `Open status pane` - Opens the status view
|
||||
- `Refresh status` - Refreshes current note's status
|
||||
- `Add status to current note` - Shows status menu
|
||||
- `Insert status metadata` - Adds status frontmatter
|
||||
- `Force refresh user interface` - Complete UI refresh
|
||||
|
||||
## Technical Details
|
||||
|
||||
### Frontmatter Format
|
||||
|
||||
Status information is stored in your note's frontmatter using the following format:
|
||||
Statuses are stored in note frontmatter:
|
||||
|
||||
```yaml
|
||||
---
|
||||
obsidian-note-status: ["active"]
|
||||
obsidian-note-status:
|
||||
- HelloWorld
|
||||
- draft
|
||||
---
|
||||
# Your note content
|
||||
```
|
||||
|
||||
Multiple statuses:
|
||||
|
||||
```yaml
|
||||
---
|
||||
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/ # Modular CSS files
|
||||
│ ├── base.css # Variables and base styles
|
||||
│ ├── utils.css # Utility classes
|
||||
│ ├── components/ # Component-specific styles
|
||||
│ │ ├── status-bar.css # Status bar styles
|
||||
│ │ ├── status-pane.css # Status pane styles
|
||||
│ │ ├── dropdown.css # Dropdown component styles
|
||||
│ │ ├── explorer.css # File explorer styles
|
||||
│ │ └── settings.css # Settings UI styles
|
||||
│ └── index.css # Main CSS import file
|
||||
└── styles.css # Auto-generated final CSS
|
||||
```
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- Node.js and npm installed.
|
||||
- Obsidian API knowledge (TypeScript-based).
|
||||
|
||||
### CSS Modularization
|
||||
|
||||
The plugin's CSS has been modularized to improve maintainability:
|
||||
|
||||
- **Component-based**: Each UI component has its own CSS file
|
||||
- **Auto-bundling**: The build process automatically bundles all CSS files into `styles.css`
|
||||
- **Development workflow**: CSS changes are hot-reloaded during development
|
||||
|
||||
When making CSS changes:
|
||||
|
||||
1. Modify the appropriate file in the `styles/` directory
|
||||
2. For new components, create a dedicated CSS file and import it in `styles/index.css`
|
||||
3. The build process will automatically bundle everything into `styles.css`
|
||||
|
||||
### Building the Plugin
|
||||
|
||||
1. Clone this repository:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/devonthesofa/obsidian-note-status.git
|
||||
cd obsidian-note-status
|
||||
```
|
||||
|
||||
2. Install dependencies:
|
||||
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
3. Build the plugin:
|
||||
|
||||
```bash
|
||||
npm run build
|
||||
```
|
||||
|
||||
4. For development with auto-rebuilding:
|
||||
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
|
||||
5. 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.
|
||||
|
||||
1. Fork the repository
|
||||
2. Create your feature branch: `git checkout -b feature/my-new-feature`
|
||||
3. Commit your changes: `git commit -am 'Add some feature'`
|
||||
4. Push to the branch: `git push origin feature/my-new-feature`
|
||||
5. 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
|
||||
|
||||
- **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
|
||||
Contributions welcome! See [🔧-Development-Setup](https://github.com/devonthesofa/obsidian-note-status/wiki/🔧-Development-Setup) for details.
|
||||
|
||||
## Support the Development
|
||||
|
||||
|
|
|
|||
76
wiki/Architecture Overview.md
Normal file
76
wiki/Architecture Overview.md
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
Technical documentation for developers working with the Note Status plugin.
|
||||
|
||||
## High-Level Architecture
|
||||
|
||||
### Plugin Structure
|
||||
|
||||
```
|
||||
note-status/
|
||||
├── main.ts # Plugin entry point and orchestration
|
||||
├── constants/ # Static configuration and defaults
|
||||
├── models/ # TypeScript interfaces and types
|
||||
├── services/ # Core business logic services
|
||||
├── components/ # Reusable UI components
|
||||
├── integrations/ # External system integrations
|
||||
├── views/ # Complex UI views and controllers
|
||||
└── styles/ # Modular CSS architecture
|
||||
```
|
||||
|
||||
## Core Services
|
||||
|
||||
### Status Change Flow
|
||||
|
||||
1. **User Interaction** → Component captures intent
|
||||
2. **Component** → Calls StatusService.handleStatusChange()
|
||||
3. **StatusService** → Updates file frontmatter
|
||||
4. **StatusService** → Dispatches status-changed event
|
||||
5. **All Components** → Update their displays
|
||||
|
||||
## CSS Architecture
|
||||
|
||||
### Modular CSS Structure
|
||||
|
||||
```
|
||||
styles/
|
||||
├── index.css # Main import file
|
||||
├── base.css # Variables and base styles
|
||||
├── utils.css # Utility classes
|
||||
└── components/ # Component-specific styles
|
||||
├── status-bar.css
|
||||
├── status-pane.css
|
||||
├── dropdown.css
|
||||
├── explorer.css
|
||||
└── settings.css
|
||||
```
|
||||
|
||||
### CSS Variable System
|
||||
|
||||
```css
|
||||
:root {
|
||||
--status-transition-time: 0.22s;
|
||||
--status-border-radius: var(--radius-s, 4px);
|
||||
--status-box-shadow: var(--shadow-s, 0 2px 8px rgba(0, 0, 0, 0.15));
|
||||
--status-hover-shadow: var(--shadow-m, 0 4px 12px rgba(0, 0, 0, 0.2));
|
||||
--status-icon-size: 16px;
|
||||
}
|
||||
```
|
||||
|
||||
### Build Process
|
||||
|
||||
**Development**: CSS files watched and bundled automatically
|
||||
**Production**: Minified and optimized CSS output
|
||||
**Hot Reload**: CSS changes reflected immediately in development
|
||||
|
||||
## Security Considerations
|
||||
|
||||
### Data Validation
|
||||
|
||||
- Frontmatter parsing with error handling
|
||||
- Status name validation (prevent injection)
|
||||
- File path sanitization
|
||||
|
||||
### Privacy
|
||||
|
||||
- All data stored locally in vault
|
||||
- No telemetry or external communication
|
||||
- User content never transmitted
|
||||
325
wiki/Configuration Guide.md
Normal file
325
wiki/Configuration Guide.md
Normal file
|
|
@ -0,0 +1,325 @@
|
|||
# Configuration Guide
|
||||
|
||||
Complete guide to customizing the Note Status plugin.
|
||||
|
||||
## Settings Overview
|
||||
|
||||
Access via Settings → Note Status
|
||||
|
||||
### Status Templates
|
||||
|
||||
Controls which predefined status sets are available.
|
||||
|
||||
#### Template Selection
|
||||
|
||||
```
|
||||
☐ Colorful workflow (9 statuses with full lifecycle)
|
||||
☐ Minimal workflow (4 essential statuses)
|
||||
☐ Academic research (7 research-focused statuses)
|
||||
☐ Project management (8 development statuses)
|
||||
```
|
||||
|
||||
**Impact**: Enabled templates add their statuses to dropdown.
|
||||
|
||||
#### Template Details
|
||||
|
||||
**Colorful Workflow** - Complete content lifecycle:
|
||||
|
||||
```
|
||||
💡 idea (#FFEB3B) - Initial concepts and brainstorming
|
||||
📝 draft (#E0E0E0) - First draft creation
|
||||
🔧 inProgress (#FFC107) - Active development work
|
||||
🖊️ editing (#2196F3) - Review and editing phase
|
||||
⏳ pending (#9C27B0) - Waiting for external input
|
||||
⏸ onHold (#9E9E9E) - Temporarily paused
|
||||
🔄 needsUpdate (#FF5722) - Requires updates/revision
|
||||
✅ completed (#4CAF50) - Finished and ready
|
||||
📦 archived (#795548) - Long-term storage
|
||||
```
|
||||
|
||||
**Minimal Workflow** - Essential only:
|
||||
|
||||
```
|
||||
📌 todo (#F44336) - Needs attention
|
||||
⚙️ inProgress (#2196F3) - Currently working
|
||||
👀 review (#9C27B0) - Needs review
|
||||
✓ done (#4CAF50) - Completed
|
||||
```
|
||||
|
||||
**Academic Research** - Research-focused:
|
||||
|
||||
```
|
||||
🔍 research (#2196F3) - Information gathering
|
||||
📑 outline (#9E9E9E) - Structure planning
|
||||
✏️ draft (#FFC107) - Writing phase
|
||||
🔬 review (#9C27B0) - Peer review stage
|
||||
📝 revision (#FF5722) - Revisions needed
|
||||
📚 final (#4CAF50) - Final version
|
||||
🎓 published (#795548) - Published work
|
||||
```
|
||||
|
||||
**Project Management** - Development workflow:
|
||||
|
||||
```
|
||||
🗓️ planning (#9E9E9E) - Planning phase
|
||||
📋 backlog (#E0E0E0) - Backlog items
|
||||
🚦 ready (#8BC34A) - Ready to start
|
||||
👨💻 inDevelopment (#2196F3) - Development phase
|
||||
🧪 testing (#9C27B0) - Testing phase
|
||||
👁️ review (#FFC107) - Code review
|
||||
👍 approved (#4CAF50) - Approved
|
||||
🚀 live (#3F51B5) - Production/live
|
||||
```
|
||||
|
||||

|
||||
|
||||
### User Interface Settings
|
||||
|
||||
#### Status Bar Configuration
|
||||
|
||||
```
|
||||
✅ Show status bar
|
||||
Shows "Status: active" at bottom of editor
|
||||
|
||||
☐ Auto-hide status bar
|
||||
Hides when status is "unknown"
|
||||
Useful for clean interface when no status assigned
|
||||
```
|
||||
|
||||
#### File Explorer Integration
|
||||
|
||||
```
|
||||
✅ Show status icons in file explorer
|
||||
Displays status icons next to filenames
|
||||
|
||||
☐ Hide unknown status in file explorer
|
||||
Improves visual clarity by hiding ❓ icons
|
||||
Recommended for large vaults
|
||||
```
|
||||
|
||||
#### Status Pane Options
|
||||
|
||||
```
|
||||
☐ Default to compact view
|
||||
Starts status pane in dense layout mode
|
||||
|
||||
✅ Exclude unassigned notes from status pane
|
||||
Skips files with "unknown" status
|
||||
CRITICAL for performance with large vaults (>5000 notes)
|
||||
```
|
||||
|
||||
### Status Behavior
|
||||
|
||||
#### Multiple Status Support
|
||||
|
||||
```
|
||||
✅ Enable multiple statuses
|
||||
Allows notes to have multiple simultaneous statuses
|
||||
Changes dropdown behavior from replace to toggle
|
||||
```
|
||||
|
||||
**When Enabled**:
|
||||
|
||||
- Clicking status toggles it on/off
|
||||
- Notes can have combinations like ("active", "inProgress",....)
|
||||
- Status bar shows all assigned statuses
|
||||
**When Disabled**:
|
||||
- Clicking status replaces current status
|
||||
- Notes have single status only
|
||||
- Simpler workflow for basic usage
|
||||
|
||||
#### Status Tag Configuration
|
||||
|
||||
```
|
||||
Status tag prefix: "obsidian-note-status"
|
||||
```
|
||||
|
||||
**Purpose**: YAML frontmatter key for storing statuses **Default**: `obsidian-note-status` **Custom example**: `project-status`, `task-state`
|
||||
|
||||
**Frontmatter examples**:
|
||||
|
||||
```yaml
|
||||
# Default
|
||||
---
|
||||
obsidian-note-status:
|
||||
- active
|
||||
---
|
||||
# Custom prefix
|
||||
---
|
||||
project-status:
|
||||
- inProgress
|
||||
- testing
|
||||
---
|
||||
```
|
||||
|
||||
#### Strict Status Validation
|
||||
|
||||
```
|
||||
☐ Strict status validation
|
||||
Only allows statuses defined in templates/custom
|
||||
⚠️ WARNING: Removes unknown statuses when editing
|
||||
```
|
||||
|
||||
**Impact when enabled**:
|
||||
|
||||
- Dropdown only shows defined statuses
|
||||
- Unknown statuses automatically removed during edits
|
||||
- Ensures consistency but may lose data
|
||||
|
||||
**Use cases**:
|
||||
|
||||
- Team environments with standardized workflows
|
||||
- Clean data requirements
|
||||
- Migration from other systems
|
||||
|
||||
### Custom Status Management
|
||||
|
||||
#### Creating Custom Statuses
|
||||
|
||||
1. **Navigate to Custom Statuses section**
|
||||
2. **Click "Add Status"**
|
||||
3. **Configure fields**:
|
||||
|
||||
```
|
||||
Name: [unique identifier]
|
||||
Icon: [emoji or symbol]
|
||||
Color: [CSS color value]
|
||||
Description: [optional tooltip text]
|
||||
```
|
||||
|
||||
#### Field Specifications
|
||||
|
||||
**Name Field**:
|
||||
|
||||
- Must be unique across all statuses
|
||||
- Case-sensitive
|
||||
- No spaces
|
||||
- Used in frontmatter and commands
|
||||
|
||||
**Icon Field**:
|
||||
|
||||
- Emoji recommended: 🔥, ⭐, 🎯
|
||||
- Unicode symbols: ◆, ▲, ●
|
||||
- Text symbols: !, ?, +
|
||||
- Fallback: ❓ if empty
|
||||
|
||||
**Color Field**:
|
||||
|
||||
- Hex format: `#FF5722`
|
||||
- CSS variables: `var(--text-success)`
|
||||
- Named colors: `red`, `blue`
|
||||
- RGB/HSL: `rgb(255, 87, 34)`
|
||||
|
||||
**Description Field**:
|
||||
|
||||
- Optional tooltip text
|
||||
- Shows on hover in dropdowns
|
||||
- Useful for team workflows
|
||||
- Example: "Waiting for client feedback"
|
||||
|
||||
#### Custom Status Examples
|
||||
|
||||
**Personal Workflow**:
|
||||
|
||||
```
|
||||
urgent 🔥 #FF0000 "Requires immediate attention"
|
||||
someday 💭 #9E9E9E "Future consideration"
|
||||
waiting ⏰ #FFC107 "Waiting for external input"
|
||||
delegated 👥 #2196F3 "Assigned to someone else"
|
||||
```
|
||||
|
||||
**Content Creation**:
|
||||
|
||||
```
|
||||
brainstorm 💡 #FFEB3B "Initial idea development"
|
||||
research 🔍 #9C27B0 "Gathering information"
|
||||
outline 📋 #E0E0E0 "Structuring content"
|
||||
writing ✍️ #2196F3 "Active writing phase"
|
||||
editing ✏️ #FF9800 "Revision and editing"
|
||||
published 🌟 #4CAF50 "Live and published"
|
||||
```
|
||||
|
||||
#### Custom-Only Mode
|
||||
|
||||
```
|
||||
☐ Use only custom statuses
|
||||
Ignores all template statuses
|
||||
Uses only custom-defined statuses
|
||||
```
|
||||
|
||||
**Use cases**:
|
||||
|
||||
- Highly specialized workflows
|
||||
- Team standardization
|
||||
- Legacy system migration
|
||||
|
||||
### Quick Status Commands
|
||||
|
||||
Configure which statuses get dedicated commands in Command Palette.
|
||||
|
||||
#### Command Generation
|
||||
|
||||
For each enabled status, creates:
|
||||
|
||||
- `Set status to [status]` - Direct assignment
|
||||
- `Toggle status [status]` - Toggle on/off (if multiple statuses enabled)
|
||||
|
||||
#### Recommended Quick Commands
|
||||
|
||||
```
|
||||
✅ active - Most common work status
|
||||
✅ completed - Frequently used completion
|
||||
✅ onHold - Common pause state
|
||||
☐ todo - Redundant with "active"
|
||||
☐ archived - Infrequent use
|
||||
```
|
||||
|
||||
#### Hotkey Assignment
|
||||
|
||||
1. **Settings → Hotkeys**
|
||||
2. **Search "note-status"**
|
||||
3. **Assign keys to quick commands**
|
||||
|
||||
**Suggested hotkeys**:
|
||||
|
||||
```
|
||||
Ctrl+Shift+A → Set status to active
|
||||
Ctrl+Shift+D → Set status to completed
|
||||
Ctrl+Shift+H → Set status to onHold
|
||||
Ctrl+Shift+S → Change status of current note
|
||||
```
|
||||
|
||||
## Advanced Configuration
|
||||
|
||||
### Performance Tuning
|
||||
|
||||
#### Large Vault Settings (5000+ notes)
|
||||
|
||||
```
|
||||
✅ Exclude unassigned notes from status pane
|
||||
✅ Hide unknown status in file explorer
|
||||
Items per page: 50 (reduce from default 100)
|
||||
```
|
||||
|
||||
#### Memory Optimization
|
||||
|
||||
```
|
||||
☐ Show status icons in file explorer (disable if slow)
|
||||
☐ Auto-hide status bar (reduce DOM updates)
|
||||
```
|
||||
|
||||
### Import/Export Configuration
|
||||
|
||||
WIP
|
||||
|
||||
#### Export Settings
|
||||
|
||||
WIP
|
||||
|
||||
#### Import Process
|
||||
|
||||
WIP
|
||||
|
||||
#### Migration Between Vaults
|
||||
|
||||
WIP
|
||||
150
wiki/Development Setup.md
Normal file
150
wiki/Development Setup.md
Normal file
|
|
@ -0,0 +1,150 @@
|
|||
# Development Setup
|
||||
|
||||
Get the plugin running locally for development.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Node.js 16+
|
||||
- npm or yarn
|
||||
- Git
|
||||
- Obsidian installed
|
||||
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
# Clone and setup
|
||||
git clone https://github.com/devonthesofa/obsidian-note-status.git
|
||||
cd obsidian-note-status
|
||||
npm install
|
||||
|
||||
# Development mode (hot reload)
|
||||
npm run dev
|
||||
|
||||
# Build for production
|
||||
npm run build
|
||||
```
|
||||
|
||||
## Development Workflow
|
||||
|
||||
### 1. Link to Test Vault
|
||||
|
||||
```bash
|
||||
# Symlink to your test vault
|
||||
ln -s /path/to/obsidian-note-status /path/to/vault/.obsidian/plugins/note-status
|
||||
|
||||
# Windows
|
||||
mklink /D "C:\Vault\.obsidian\plugins\note-status" "C:\Dev\obsidian-note-status"
|
||||
```
|
||||
|
||||
### 2. Enable Plugin
|
||||
|
||||
1. Open Obsidian
|
||||
2. Settings → Community plugins → Disable Safe Mode
|
||||
3. Enable "Note Status"
|
||||
|
||||
### 3. Hot Reload
|
||||
|
||||
Development mode watches for changes:
|
||||
|
||||
- TypeScript changes → Auto rebuild
|
||||
- CSS changes → Instant update
|
||||
- Full reload: Ctrl+R in Obsidian
|
||||
|
||||
## Common Development Tasks
|
||||
|
||||
### Add New Status Template
|
||||
|
||||
```typescript
|
||||
// constants/status-templates.ts
|
||||
export const PREDEFINED_TEMPLATES: StatusTemplate[] = [
|
||||
{
|
||||
id: "new-workflow",
|
||||
name: "New Workflow",
|
||||
description: "Description",
|
||||
statuses: [{ name: "status1", icon: "🔥", color: "#FF0000" }],
|
||||
},
|
||||
];
|
||||
```
|
||||
|
||||
### Add New Command
|
||||
|
||||
```typescript
|
||||
// integrations/commands/command-integration.ts
|
||||
this.plugin.addCommand({
|
||||
id: "new-command",
|
||||
name: "New Command",
|
||||
callback: () => {
|
||||
// Implementation
|
||||
},
|
||||
});
|
||||
```
|
||||
|
||||
### Add New Setting
|
||||
|
||||
```typescript
|
||||
// 1. Update interface in models/types.ts
|
||||
export interface NoteStatusSettings {
|
||||
newSetting: boolean;
|
||||
}
|
||||
|
||||
// 2. Add default in constants/defaults.ts
|
||||
export const DEFAULT_SETTINGS: NoteStatusSettings = {
|
||||
newSetting: false,
|
||||
};
|
||||
|
||||
// 3. Add UI in integrations/settings/settings-ui.ts
|
||||
new Setting(containerEl)
|
||||
.setName("New Setting")
|
||||
.addToggle((toggle) =>
|
||||
toggle
|
||||
.setValue(settings.newSetting)
|
||||
.onChange((value) =>
|
||||
this.callbacks.onSettingChange("newSetting", value),
|
||||
),
|
||||
);
|
||||
```
|
||||
|
||||
## Build & Release
|
||||
|
||||
### Production Build
|
||||
|
||||
```bash
|
||||
npm run build
|
||||
# Creates: main.js, manifest.json, styles.css
|
||||
```
|
||||
|
||||
### Version Bump
|
||||
|
||||
```bash
|
||||
npm version patch # or minor/major
|
||||
# Updates: package.json, manifest.json, versions.json
|
||||
```
|
||||
|
||||
### Release Process
|
||||
|
||||
1. Create git tag: `git tag 1.0.13`
|
||||
2. Push tag: `git push origin 1.0.13`
|
||||
3. GitHub Actions creates draft release
|
||||
4. Edit release notes and publish
|
||||
|
||||
### Obsidian DevTools
|
||||
|
||||
- Ctrl+Shift+I → Console
|
||||
- Check for plugin errors
|
||||
- Monitor performance tab
|
||||
|
||||
## Code Style
|
||||
|
||||
- TypeScript strict mode
|
||||
- Use `const` by default
|
||||
- Explicit return types
|
||||
- Handle null/undefined
|
||||
- Clean up in unload()
|
||||
|
||||
## Contributing
|
||||
|
||||
1. Fork repository
|
||||
2. Create feature branch
|
||||
3. Follow existing patterns
|
||||
4. Test with large vault
|
||||
5. Submit PR with description
|
||||
115
wiki/Frontmatter Format.md
Normal file
115
wiki/Frontmatter Format.md
Normal file
|
|
@ -0,0 +1,115 @@
|
|||
# Frontmatter Format
|
||||
|
||||
Technical specification for Note Status metadata storage.
|
||||
|
||||
## Format Overview
|
||||
|
||||
Status metadata is stored in YAML frontmatter using a configurable tag prefix.
|
||||
|
||||
```yaml
|
||||
---
|
||||
obsidian-note-status:
|
||||
- active
|
||||
---
|
||||
```
|
||||
|
||||
## Specification
|
||||
|
||||
### Field Name
|
||||
|
||||
- **Default**: `obsidian-note-status`
|
||||
- **Type**: String or Array
|
||||
- **Configurable**: Yes, via `tagPrefix` setting
|
||||
|
||||
### Value Types
|
||||
|
||||
#### Single Status (Array)
|
||||
|
||||
```yaml
|
||||
---
|
||||
obsidian-note-status:
|
||||
- active
|
||||
---
|
||||
```
|
||||
|
||||
#### Multiple Statuses (Array)
|
||||
|
||||
```yaml
|
||||
---
|
||||
obsidian-note-status:
|
||||
- active
|
||||
- hello
|
||||
- world
|
||||
---
|
||||
```
|
||||
|
||||
## Valid Status Values
|
||||
|
||||
### Default Statuses
|
||||
|
||||
- `unknown` - No status assigned
|
||||
- Template Statuses: Any status defined in enabled templates
|
||||
- Must match exact name (case-sensitive)
|
||||
- Icon and color stored separately
|
||||
- Custom Statuses: User-defined statuses
|
||||
- Any string value allowed
|
||||
- No spaces
|
||||
- Case-sensitive matching
|
||||
|
||||
## Validation
|
||||
|
||||
With `strictStatuses: true`:
|
||||
|
||||
- Only defined statuses allowed
|
||||
- Unknown statuses removed on save
|
||||
- Case-sensitive matching
|
||||
|
||||
## Custom Tag Prefix
|
||||
|
||||
### Configuration
|
||||
|
||||
```javascript
|
||||
settings.tagPrefix = "project-status";
|
||||
```
|
||||
|
||||
### Result
|
||||
|
||||
```yaml
|
||||
---
|
||||
project-status:
|
||||
- inDevelopment
|
||||
- testing
|
||||
---
|
||||
```
|
||||
|
||||
## Integration Examples
|
||||
|
||||
### Dataview Query
|
||||
|
||||
```dataview
|
||||
TABLE obsidian-note-status as Status
|
||||
FROM ""
|
||||
WHERE contains(obsidian-note-status, "active")
|
||||
```
|
||||
|
||||
### Templater
|
||||
|
||||
```yaml
|
||||
---
|
||||
obsidian-note-status: ["<% tp.system.prompt("Status?") %>"]
|
||||
---
|
||||
```
|
||||
|
||||
### QuickAdd
|
||||
|
||||
```yaml
|
||||
---
|
||||
obsidian-note-status: ["{{VALUE:active,onHold,completed}}"]
|
||||
---
|
||||
```
|
||||
|
||||
### Reserved Values
|
||||
|
||||
- `unknown` - System reserved
|
||||
- Empty string - Converted to unknown
|
||||
- `null`/`undefined` - Treated as unknown
|
||||
87
wiki/Home Page.md
Normal file
87
wiki/Home Page.md
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
# Note Status Plugin Wiki
|
||||
|
||||
Welcome to the comprehensive documentation for the Note Status plugin for Obsidian.
|
||||
|
||||
## 📚 Documentation Index
|
||||
|
||||
### For Users
|
||||
|
||||
- **[[Quick Start Guide|📚 Quick Start Guide]]** - Get running in 5 minutes
|
||||
- **[[User Manual|📖 User Manual]]** - Complete feature documentation
|
||||
- **[[Configuration Guide|⚙️ Configuration Guide]]** - Settings and customization
|
||||
- **[[Performance Tuning|🚀 Performance Tuning]]** - Optimize for large vaults
|
||||
|
||||
### For Developers
|
||||
|
||||
- **[[Architecture Overview|🏗️ Architecture Overview]]** - Plugin structure and design
|
||||
- **[[Development Setup|🔧 Development Setup]]** - Contributing guide
|
||||
|
||||
### Reference
|
||||
|
||||
- **[[Frontmatter Format|📝 Frontmatter Format]]** - Technical specification
|
||||
|
||||
## 📈 Features Overview
|
||||
|
||||
### Core Features
|
||||
|
||||
- ✅ Status assignment (active, on hold, completed, dropped)
|
||||
- ✅ Multiple statuses per note
|
||||
- ✅ File explorer integration
|
||||
- ✅ Status bar display
|
||||
- ✅ Dropdown status selector
|
||||
- ✅ Dedicated status pane
|
||||
- ✅ Batch operations
|
||||
- ✅ Custom statuses and templates
|
||||
|
||||
### Advanced Features
|
||||
|
||||
- ✅ Large vault optimization (40k+ notes tested)
|
||||
- ✅ Pagination and filtering
|
||||
- ✅ Context menus and commands
|
||||
- ✅ Auto-hide behaviors
|
||||
- ✅ Search and organization
|
||||
- ✅ Import/export configurations
|
||||
|
||||
## 🎯 Use Cases
|
||||
|
||||
### Personal Knowledge Management
|
||||
|
||||
- Track reading progress on books and articles
|
||||
- Manage project statuses and milestones
|
||||
- Organize research notes by completion stage
|
||||
|
||||
### Academic Research
|
||||
|
||||
- Track paper review stages
|
||||
- Manage thesis chapter progress
|
||||
- Organize literature review statuses
|
||||
|
||||
### Project Management
|
||||
|
||||
- Monitor task completion
|
||||
- Track feature development stages
|
||||
- Manage backlog items
|
||||
|
||||
### Content Creation
|
||||
|
||||
- Track blog post drafts
|
||||
- Manage video script statuses
|
||||
- Organize creative project stages
|
||||
|
||||
## 💡 Getting Help
|
||||
|
||||
1. **Review [GitHub Issues](https://github.com/devonthesofa/obsidian-note-status/issues)**
|
||||
2. **Create a new issue** with detailed information
|
||||
|
||||
## 🤝 Contributing
|
||||
|
||||
We welcome contributions! See the [[Development Setup]] guide to get started.
|
||||
|
||||
- **Report bugs** via GitHub Issues
|
||||
- **Suggest features** in GitHub Discussions
|
||||
- **Submit code** via Pull Requests
|
||||
- **Improve documentation** by editing wiki pages
|
||||
|
||||
---
|
||||
|
||||
_Last updated: [Current Date]_ _Plugin version: 1.0.12_
|
||||
86
wiki/Performance Tuning.md
Normal file
86
wiki/Performance Tuning.md
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
# Performance Tuning
|
||||
|
||||
Optimize Note Status for large vaults (tested up to 40k notes).
|
||||
|
||||
## Quick Wins
|
||||
|
||||
### Essential Settings for 5k+ Notes
|
||||
|
||||
```
|
||||
✅ Exclude unassigned notes from status pane
|
||||
✅ Hide unknown status in file explorer
|
||||
Pagination: 50-100 items per page
|
||||
```
|
||||
|
||||
### Disable Heavy Features
|
||||
|
||||
```
|
||||
☐ Show status icons in file explorer (if slow)
|
||||
☐ Auto-hide status bar (reduces DOM updates)
|
||||
```
|
||||
|
||||
## Minimal Performance Config
|
||||
|
||||
```json
|
||||
{
|
||||
"showStatusIconsInExplorer": false,
|
||||
"excludeUnknownStatus": true,
|
||||
"hideUnknownStatusInExplorer": true,
|
||||
"compactView": true,
|
||||
"enabledTemplates": ["minimal"]
|
||||
}
|
||||
```
|
||||
|
||||
## Troubleshooting Lag
|
||||
|
||||
### Status Pane Slow
|
||||
|
||||
1. Enable compact view
|
||||
2. Close unused status groups
|
||||
|
||||
### File Explorer Sluggish
|
||||
|
||||
1. Disable status icons temporarily
|
||||
2. Restart Obsidian
|
||||
3. Check for conflicting plugins
|
||||
|
||||
### Dropdown Delay
|
||||
|
||||
Normal behavior - uses debouncing. If excessive:
|
||||
|
||||
- Check console for errors
|
||||
- Disable strict validation
|
||||
- Reduce custom statuses count
|
||||
|
||||
## Advanced Optimization
|
||||
|
||||
### Browser DevTools Analysis
|
||||
|
||||
```
|
||||
1. Ctrl+Shift+I → Performance tab
|
||||
2. Record while opening status pane
|
||||
3. Look for:
|
||||
- Long tasks > 50ms
|
||||
- Excessive DOM operations
|
||||
- Memory leaks
|
||||
```
|
||||
|
||||
## Known Limitations
|
||||
|
||||
### File Explorer Integration
|
||||
|
||||
- Uses private Obsidian APIs
|
||||
- May break with updates
|
||||
- Fallback: Disable icons
|
||||
|
||||
### Metadata Cache
|
||||
|
||||
- Triggers on every frontmatter change
|
||||
- Batched with 100ms debounce
|
||||
- Can't be optimized further
|
||||
|
||||
### DOM Mutations
|
||||
|
||||
- File explorer recreates elements
|
||||
- Status pane uses virtual scrolling
|
||||
- Limit: ~10k visible items
|
||||
129
wiki/Quick Start Guide.md
Normal file
129
wiki/Quick Start Guide.md
Normal file
|
|
@ -0,0 +1,129 @@
|
|||
# Quick Start Guide
|
||||
|
||||
Get the Note Status plugin working in under 5 minutes.
|
||||
|
||||
## Installation
|
||||
|
||||
### Method 1: Community Plugin Store (Recommended)
|
||||
|
||||
1. Open Obsidian → Settings → Community plugins
|
||||
2. Disable Safe mode
|
||||
3. Click "Browse" → Search "Note Status"
|
||||
4. Install and Enable
|
||||
|
||||
### Method 2: Manual Installation
|
||||
|
||||
1. Download latest release from [GitHub](https://github.com/devonthesofa/obsidian-note-status/releases)
|
||||
2. Extract the following files into your Obsidian vault under `.obsidian/plugins/note-status/`:
|
||||
- `main.js`
|
||||
- `manifest.json`
|
||||
- `styles.css`
|
||||
3. In Obsidian, go to **Settings → Community plugins** and enable **Note Status**.
|
||||
|
||||
## First Status Assignment
|
||||
|
||||
### Using the Toolbar
|
||||
|
||||
1. Open any note
|
||||
2. Click the `❓` icon in the toolbar:
|
||||
- 
|
||||
3. Select a status (e.g., "active")
|
||||
4. Status appears in status bar and file explorer:
|
||||
- 
|
||||
- 
|
||||
|
||||
### Using Commands
|
||||
|
||||
1. Press `Ctrl/Cmd + P` for command palette
|
||||
2. Type "Change status"
|
||||
3. Select status from dropdown
|
||||
|
||||
## Essential Settings
|
||||
|
||||
Access via Settings → Note Status:
|
||||
|
||||
```
|
||||
✅ Show status bar
|
||||
✅ Show status icons in file explorer
|
||||
✅ Enable multiple statuses
|
||||
❌ Auto-hide status bar (disable for learning)
|
||||
```
|
||||
|
||||
## Status Templates
|
||||
|
||||
Enable a template for instant statuses:
|
||||
**Recommended for beginners: "Minimal workflow"**
|
||||
|
||||
- `todo` 📌
|
||||
- `inProgress` ⚙️
|
||||
- `review` 👀
|
||||
- `done` ✓
|
||||
|
||||
## First Workflow
|
||||
|
||||
1. **Create a project note** → Set status to `todo`
|
||||
2. **Start working** → Change to `inProgress`
|
||||
3. **Need feedback** → Change to `review`
|
||||
4. **Complete** → Change to `done`
|
||||
|
||||
## Viewing Your Statuses
|
||||
|
||||
### Status Pane (Recommended)
|
||||
|
||||
- Click status icon in left sidebar
|
||||
- See all notes grouped by status
|
||||
- Click any note to open
|
||||

|
||||
|
||||
### File Explorer
|
||||
|
||||
- Status icons appear next to file names
|
||||
- Right-click files to change status
|
||||
- Select multiple files for batch updates - 
|
||||

|
||||
|
||||
## Performance Setup (Large Vaults)
|
||||
|
||||
If you have 1000+ notes, set the settings:
|
||||
|
||||
```
|
||||
✅ Exclude unassigned notes from status pane
|
||||
✅ Hide unknown status in file explorer
|
||||
```
|
||||
|
||||
## Frontmatter Format
|
||||
|
||||
The plugin stores statuses in YAML frontmatter:
|
||||
|
||||
```yaml
|
||||
---
|
||||
obsidian-note-status:
|
||||
- active
|
||||
---
|
||||
```
|
||||
|
||||
Multiple statuses:
|
||||
|
||||
```yaml
|
||||
---
|
||||
obsidian-note-status:
|
||||
- idea
|
||||
- HelloWorld
|
||||
---
|
||||
```
|
||||
|
||||
## Next Steps
|
||||
|
||||
- **[[User Manual]]** - Complete feature guide
|
||||
- **[[Configuration Guide]]** - Custom statuses and templates
|
||||
- **[[Performance Tuning]]** - Optimize for your vault size
|
||||
|
||||
## Quick Reference
|
||||
|
||||
| Action | Method |
|
||||
| ----------------- | -------------------------- |
|
||||
| Set status | Click toolbar icon |
|
||||
| Batch update | Select files → right-click |
|
||||
| View all statuses | Open status pane |
|
||||
| Add custom status | Settings → Custom statuses |
|
||||
| Remove status | Click status chip → X |
|
||||
220
wiki/User Manual.md
Normal file
220
wiki/User Manual.md
Normal file
|
|
@ -0,0 +1,220 @@
|
|||
# User Manual
|
||||
|
||||
Complete guide to all Note Status plugin features.
|
||||
|
||||
## Core Concepts
|
||||
|
||||
### Status System
|
||||
|
||||
- **Status**: A label applied to notes (active, completed, etc.)
|
||||
- **Multiple Statuses**: Notes can have multiple statuses simultaneously
|
||||
- **Unknown Status**: Default for notes without assigned status
|
||||
- **Templates**: Predefined sets of statuses for different workflows
|
||||
|
||||
### Storage Format
|
||||
|
||||
Statuses are stored in YAML frontmatter:
|
||||
|
||||
```yaml
|
||||
---
|
||||
obsidian-note-status:
|
||||
- idea
|
||||
- HelloWorld
|
||||
---
|
||||
```
|
||||
|
||||
## Interface Components
|
||||
|
||||
### 1. Toolbar Button
|
||||
|
||||
**Location**: Editor toolbar (rightmost icon) **Appearance**: Shows current status icon or `❓` for unknown **Function**: Click to open status dropdown
|
||||
|
||||
**Visual Indicators**:
|
||||
|
||||
- Single status: Shows status icon
|
||||
- Multiple statuses: Shows primary status + count badge
|
||||
- Unknown status: Shows `❓` icon
|
||||
|
||||
### 2. Status Bar
|
||||
|
||||
**Location**: Bottom of editor **Display**: `Status: active` or `Statuses: active, inProgress` **Behavior**:
|
||||
|
||||
- Click to open dropdown
|
||||
- Auto-hide when status is unknown (configurable)
|
||||
|
||||
### 3. Status Dropdown
|
||||
|
||||
**Trigger**: Click toolbar button, status bar, or context menu **Features**:
|
||||
|
||||
- Current status chips (removable)
|
||||
- Search/filter statuses
|
||||
- Status options with icons
|
||||
- Multi-file support
|
||||
|
||||
### 4. File Explorer Integration
|
||||
|
||||
**Visual**: Status icons next to file names
|
||||
**Interaction**: Right-click for context menu
|
||||
**Multi-select**: Select multiple files for batch operations
|
||||
|
||||
### 5. Status Pane
|
||||
|
||||
**Location**: Left sidebar
|
||||
**Access**: Ribbon icon or Command Palette
|
||||
**Features**:
|
||||
|
||||
- Notes grouped by status
|
||||
- Search functionality
|
||||
- Compact/standard view toggle
|
||||
- Pagination for large groups
|
||||
|
||||
## Basic Operations
|
||||
|
||||
### Setting Status (Single Note)
|
||||
|
||||
#### Method 1: Toolbar
|
||||
|
||||
1. Open note
|
||||
2. Click toolbar status icon
|
||||
3. Select status from dropdown
|
||||
|
||||
#### Method 2: Right-click
|
||||
|
||||
1. Right-click note in file explorer
|
||||
2. Select "Change status"
|
||||
3. Choose status
|
||||
|
||||
#### Method 3: Command Palette
|
||||
|
||||
1. `Ctrl/Cmd + P`
|
||||
2. Type "Change status"
|
||||
3. Select status
|
||||
|
||||
### Multiple Statuses
|
||||
|
||||
When enabled in settings:
|
||||
|
||||
**Add Status**:
|
||||
|
||||
- Click non-selected status in dropdown
|
||||
- Status is added to existing ones
|
||||
|
||||
**Remove Status**:
|
||||
|
||||
- Click X on status chip
|
||||
- Status is removed
|
||||
|
||||
**Toggle Mode**:
|
||||
|
||||
- Each click toggles status on/off
|
||||
- Useful for quick status management
|
||||
|
||||
### Batch Operations
|
||||
|
||||
**Select Multiple Files**:
|
||||
|
||||
- `Ctrl/Cmd + Click` for individual selection
|
||||
- `Shift + Click` for range selection
|
||||
|
||||
**Apply Status**:
|
||||
|
||||
1. Right-click selection
|
||||
2. Choose "Change status"
|
||||
3. Select status
|
||||
4. Chooses add/remove based on majority
|
||||
|
||||
**Batch Logic**:
|
||||
|
||||
- If >50% of files have status → Remove
|
||||
- If <50% of files have status → Add
|
||||
- Smart handling preserves other statuses
|
||||
|
||||
## Advanced Features
|
||||
|
||||
### Status Pane Operations
|
||||
|
||||
#### Views
|
||||
|
||||
- **Standard**: Full file icons and spacing
|
||||
- **Compact**: Dense list format
|
||||
|
||||
#### Search
|
||||
|
||||
- Filters notes by filename
|
||||
- Real-time filtering
|
||||
- Case-insensitive
|
||||
|
||||
#### Pagination
|
||||
|
||||
- Configurable items per page (default: 100)
|
||||
- Prevents performance issues
|
||||
- Per-status pagination state
|
||||
|
||||
#### Group Management
|
||||
|
||||
- Click group header to collapse/expand
|
||||
- State persisted between sessions
|
||||
- Shows file count per status
|
||||
|
||||
### Context Menus
|
||||
|
||||
#### Single File
|
||||
|
||||
- **File Explorer**: Right-click → "Change status"
|
||||
- **Editor**: Right-click → "Change note status"
|
||||
|
||||
#### Multiple Files
|
||||
|
||||
- **Batch Selection**: Right-click → "Change status"
|
||||
- **Status Management**: Dedicated multi-file interface
|
||||
|
||||
### Commands
|
||||
|
||||
All commands available via Command Palette:
|
||||
|
||||
#### Core Commands
|
||||
|
||||
- `Open status pane` - Show status sidebar
|
||||
- `Change status of current note` - Open dropdown
|
||||
- `Add status to current note` - Add mode dropdown
|
||||
- `Insert status metadata` - Add frontmatter
|
||||
- `Cycle to next status` - Rotate through statuses
|
||||
- `Clear status` - Set to unknown
|
||||
|
||||
#### Quick Commands (Configurable)
|
||||
|
||||
- `Set status to [status]` - Direct status assignment
|
||||
- `Toggle status [status]` - Toggle specific status
|
||||
|
||||
#### Utility Commands
|
||||
|
||||
- `Copy status from current note` - Copy to clipboard
|
||||
- `Paste status to current note` - Apply from clipboard
|
||||
- `Toggle multiple statuses mode` - Enable/disable multi-status
|
||||
- `Search notes by current status` - Global search
|
||||
|
||||
## Global Search Integration
|
||||
|
||||
Use Obsidian's global search with status queries:
|
||||
|
||||
```
|
||||
[obsidian-note-status:"active"]
|
||||
[obsidian-note-status:"inProgress" OR "review"]
|
||||
```
|
||||
|
||||
## Keyboard Shortcuts
|
||||
|
||||
### Default Shortcuts
|
||||
|
||||
None assigned by default - customize in Obsidian settings.
|
||||
|
||||
### Recommended Shortcuts
|
||||
|
||||
- `Ctrl/Cmd + Shift + S` - Change status
|
||||
- `Ctrl/Cmd + Shift + P` - Open status pane
|
||||
- `Ctrl/Cmd + Shift + A` - Set status to active
|
||||
- `Ctrl/Cmd + Shift + D` - Set status to done
|
||||
|
||||
### Quick Status Commands
|
||||
|
||||
Configure in settings to enable hotkeys for frequently used statuses.
|
||||
Loading…
Reference in a new issue