https://github.com/elliotxx/obsidian-simple-todo
A minimalist text-based todo manager (Text-Based GTD) for efficient task management in Obsidian.
https://github.com/elliotxx/obsidian-simple-todo
Last synced: 6 months ago
JSON representation
A minimalist text-based todo manager (Text-Based GTD) for efficient task management in Obsidian.
- Host: GitHub
- URL: https://github.com/elliotxx/obsidian-simple-todo
- Owner: elliotxx
- License: mit
- Created: 2024-10-31T07:42:12.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-12-19T09:49:06.000Z (10 months ago)
- Last Synced: 2025-03-28T05:04:26.992Z (6 months ago)
- Language: TypeScript
- Homepage:
- Size: 2.01 MB
- Stars: 4
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Simple Todo
A minimalist text-based todo manager (Text-Based GTD) plugin for efficient task management in Obsidian.
English | [įŽäŊ䏿](./README.zh-CN.md)

## Features
- đ Pure text-based, fully compatible with Markdown syntax
- đ¯ Quick task creation, editing, and completion
- đ Simple task categorization
- đ Date-based task organization
- đ Task status toggle (Todo/In Progress/Done)
- đĻ Completed task archiving
- đ Multi-language support (English, įŽäŊ䏿)## Installation
1. Open Settings in Obsidian
2. Go to "Community Plugins"
3. Disable "Safe Mode"
4. Click "Browse" and search for "Simple Todo"
5. Click Install
6. Enable the plugin## Settings
### Language
- Open plugin settings
- Select your preferred language from the dropdown menu
- Changes take effect immediately### Keyboard Shortcuts
Default shortcuts:
- `Ctrl/Cmd + Enter` - Toggle todo status
- Other commands can be configured in plugin settings## Usage
### Basic Syntax
```
2024-10-30 Wed
- [ ] Create a todo task
- [x] Mark task as completed
- [/] Mark task as in progress
```Note:
- Date format must be `2024-10-30 Wed` to be recognized
- Tasks must start with `- [ ]` or `- [x]` or `- [/]` to be recognized as tasks### Supported Commands
- `Toggle Todo Status` - Toggle task status (Todo -> In Progress -> Done -> Todo)
- `Reschedule Previous Todos` - Move unfinished tasks from the most recent day to today
- `Archive Completed Todos` - Archive completed tasks (by month to simple-todo directory)### Task Status
- `- [ ]` - Todo task
- `- [/]` - Task in progress
- `- [x]` - Completed task### Task Rescheduling
- Plugin searches for unfinished tasks from the most recent day, starting from cursor position
- If unfinished tasks are found, they will be moved under today's date
- If today's date doesn't exist, it will be created automatically
- After rescheduling, cursor will be positioned at the last task of today's block### Archiving
- Archive files are stored in the `simple-todo/` directory
- Files are named by month (e.g., `simple-todo/archive-2024-03.md`)
- Archiving rules:
- Tasks are grouped by month
- A month can only be archived when all its tasks are completed
- Months with unfinished or in-progress tasks will be skipped with a notification
- Archive file format:
- Each file includes a month title
- Completed tasks are recorded chronologically
- Archived tasks are automatically removed from the original file### Date Format
- Format: `YYYY-MM-DD Weekday`
- Example: `2024-03-21 Thu`
- Date line must be on its own line
- Tasks must follow the date line
- Recommended to keep one empty line between date blocks, plugin will handle spacing automatically## Development Guide
### Prerequisites
1. Install Node.js (LTS version recommended)
2. Install npm
3. Clone the repository:
```bash
git clone https://github.com/elliotxx/obsidian-simple-todo.git
```### Development Workflow
1. Install dependencies:
```bash
cd obsidian-simple-todo
npm install
```2. Create symlink to test vault:
```bash
# Windows (Administrator)
mklink /D "path/to/vault/.obsidian/plugins/obsidian-simple-todo" "path/to/your/project"# macOS/Linux
ln -s "path/to/your/project" "path/to/vault/.obsidian/plugins/obsidian-simple-todo"
```3. Start development server:
```bash
npm run dev
```4. In Obsidian:
- Open Settings > Community Plugins
- Turn off Safe Mode
- Refresh plugin list
- Enable "Simple Todo" plugin5. After code changes:
- Files will auto-rebuild on save
- Press `Ctrl/Cmd + R` in Obsidian to reload### Building for Release
1. Build production version:
```bash
npm run build
```2. Pre-release checklist:
- Update version in `manifest.json`
- Update version in `package.json`
- Update `versions.json`
- Commit all changes
- Create new release tag## Todo List
- [ ] Task Priority Management
- Support manual priority setting
- Support quick priority setting via hotkeys
- Auto-sort tasks based on priority
- [ ] Important but Not Urgent Task Management
- Support moving tasks to [Important but Not Urgent] list
- Daily random reminder of tasks from [Important but Not Urgent] list
- [ ] Hotkey Binding Enhancement
- Add default hotkeys for common operations
- Support custom hotkey configuration## Contributing
Issues and Pull Requests are welcome!
## License
MIT License