mirror of
https://github.com/heroblackink/ultimate-todoist-sync-for-obsidian.git
synced 2026-07-22 07:40:27 +00:00
chore: bump version to 2.0.0 and update documentation
- Update feature table: priority and labels/tags sync now bidirectional - Add sync direction controls and excluded folders to settings docs - Add development guide (clone, build, project structure) - Add CHANGELOG entry for 2.0.0
This commit is contained in:
parent
3b9a24b3a8
commit
6bdb2824cd
6 changed files with 127 additions and 43 deletions
12
.github/workflows/release.yml
vendored
12
.github/workflows/release.yml
vendored
|
|
@ -6,18 +6,18 @@ on:
|
|||
- "*"
|
||||
|
||||
env:
|
||||
PLUGIN_NAME: ultimate-todoist-sync # Change this to match the id of your plugin.
|
||||
PLUGIN_NAME: ultimate-todoist-sync
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: Use Node.js
|
||||
uses: actions/setup-node@v3
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 16
|
||||
node-version: 20
|
||||
|
||||
- name: Build
|
||||
id: build
|
||||
|
|
@ -28,10 +28,10 @@ jobs:
|
|||
cp main.js manifest.json styles.css ${{ env.PLUGIN_NAME }}
|
||||
zip -r ${{ env.PLUGIN_NAME }}.zip ${{ env.PLUGIN_NAME }}
|
||||
ls
|
||||
echo "::set-output name=tag_name::$(git tag --sort version:refname | tail -n 1)"
|
||||
echo "tag_name=$(git tag --sort version:refname | tail -n 1)" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Create Release and Upload Assets
|
||||
uses: softprops/action-gh-release@v1
|
||||
uses: softprops/action-gh-release@v2
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
with:
|
||||
token: ${{ secrets.GH_PAT }}
|
||||
|
|
|
|||
20
CHANGELOG.md
20
CHANGELOG.md
|
|
@ -1,5 +1,25 @@
|
|||
## CHANGELOG
|
||||
|
||||
### [2.0.0] - 2026-03-15
|
||||
|
||||
#### Added
|
||||
- Sync direction controls: independently enable/disable Obsidian→Todoist and Todoist→Obsidian
|
||||
- Excluded folders: tree UI to select folders excluded from Full Vault Sync
|
||||
- Full vault sync now scans all vault files on each sync cycle
|
||||
- Automatic exclusion of template folders, hidden folders, and plugin storage
|
||||
|
||||
#### Changed
|
||||
- Todoist API migrated from v9 to v1, library upgraded to v6.5.0
|
||||
- Data architecture simplified: Todoist API as single source of truth, removed local task cache
|
||||
- Backup files now use `.md.bak` extension to prevent Obsidian link pollution
|
||||
- Priority and labels/tags sync is now fully bidirectional
|
||||
- Database checker rewritten with three-way data consistency checks
|
||||
|
||||
#### Fixed
|
||||
- Stability improvements for Full Vault Sync
|
||||
|
||||
---
|
||||
|
||||
### [1.0.4] - 2026-02-17
|
||||
|
||||
#### Added
|
||||
|
|
|
|||
121
README.md
121
README.md
|
|
@ -14,25 +14,22 @@ The Ultimate Todoist Sync plugin automatically creates tasks in Todoist and sync
|
|||
|
||||
## Features
|
||||
|
||||
###
|
||||
| Feature | Sync from Obsidian to Todoist | Sync from Todoist to Obsidian | Description |
|
||||
|-------------------------|-------------------------------|-------------------------------|-------------|
|
||||
| Add task | ✅ | 🔜 | |
|
||||
| Delete task | ✅ | 🔜 | |
|
||||
| Modify task content | ✅ | ✅ | |
|
||||
| Modify task due date | ✅ | ✅ | |
|
||||
| Modify task description | 🔜 | 🔜 | |
|
||||
| Modify task labels/tags | ✅ | 🔜 | |
|
||||
| Mark task as completed | ✅ | ✅ | |
|
||||
| Mark task as uncompleted| ✅ | ✅ | |
|
||||
| Modify project | 🔜 | 🔜 | |
|
||||
| Modify section | 🔜 | 🔜 | |
|
||||
| Modify priority | ✅ | 🔜 | Currently, task priority only support one-way synchronization from Todoist to Obsidian. |
|
||||
| Add reminder | 🔜 | 🔜 | |
|
||||
| Move tasks between files| 🔜 | 🔜 | |
|
||||
| Added-at date | 🔜 | 🔜 | |
|
||||
| Completed-at date | 🔜 | 🔜 | |
|
||||
| Task notes | 🔜 | ✅ | Currently, task notes/comments only support one-way synchronization from Todoist to Obsidian. |
|
||||
| Feature | Obsidian → Todoist | Todoist → Obsidian |
|
||||
|--------------------------|--------------------|--------------------|
|
||||
| Add task | ✅ | 🔜 |
|
||||
| Delete task | ✅ | 🔜 |
|
||||
| Modify task content | ✅ | ✅ |
|
||||
| Modify task due date | ✅ | ✅ |
|
||||
| Modify task labels/tags | ✅ | ✅ |
|
||||
| Mark task as completed | ✅ | ✅ |
|
||||
| Mark task as uncompleted | ✅ | ✅ |
|
||||
| Modify priority | ✅ | ✅ |
|
||||
| Task notes/comments | 🔜 | ✅ |
|
||||
| Modify task description | 🔜 | 🔜 |
|
||||
| Modify project | 🔜 | 🔜 |
|
||||
| Modify section | 🔜 | 🔜 |
|
||||
| Add reminder | 🔜 | 🔜 |
|
||||
| Move tasks between files | 🔜 | 🔜 |
|
||||
|
||||
|
||||
## Installation
|
||||
|
|
@ -70,12 +67,24 @@ If you would rather install the plugin manually, you can do the following:
|
|||
|
||||
|
||||
## Settings
|
||||
1. Automatic synchronization interval time
|
||||
|
||||
1. **Automatic synchronization interval time**
|
||||
The time interval for automatic synchronization is set to 300 seconds by default, which means it runs every 5 minutes. You can modify it yourself.
|
||||
2. Default project
|
||||
New tasks will be added to the default project, and you can change the default project in the settings.
|
||||
3. Full vault sync
|
||||
By enabling this option, the plugin will automatically add `#todoist` to all tasks, which will modify all files in the vault.
|
||||
|
||||
2. **Default project**
|
||||
New tasks will be added to the default project, and you can change the default project in the settings or use a project tag to specify a particular project.
|
||||
|
||||
3. **Sync direction controls**
|
||||
- Obsidian → Todoist (default: on)
|
||||
- Todoist → Obsidian (default: off)
|
||||
|
||||
Each direction can be independently enabled or disabled.
|
||||
|
||||
4. **Full vault sync**
|
||||
By enabling this option, the plugin will automatically add `#todoist` to all tasks in your vault.
|
||||
|
||||
5. **Excluded folders**
|
||||
Select folders to exclude from Full Vault Sync. Template folders, hidden folders, and plugin storage are excluded automatically.
|
||||
|
||||
|
||||
## Usage
|
||||
|
|
@ -85,10 +94,10 @@ By enabling this option, the plugin will automatically add `#todoist` to all tas
|
|||
| Syntax | Description | Example |
|
||||
| --- | --- | --- |
|
||||
|#todoist|Tasks marked with `#todoist` will be added to Todoist, while tasks without the `#todoist` tag will not be processed. If you have enabled Full vault sync in the settings, `#todoist` will be added automatically.| `- [ ] task #todoist`|
|
||||
| 📅YYYY-MM-DD | The date format is 📅YYYY-MM-DD, indicating the due date of a task. | `- [ ] task content 📅2025-02-05 #todoist` <br>Supports the following calendar emojis.📅📆🗓🗓️|
|
||||
| #projectTag | New tasks will be added to the default project(For example, inbox .), and you can change the default project in the settings or use a tag with the same name to specify a particular project. | `- [ ] taskA #todoist` will be added to inbox.<br>`- [ ] taskB #tag #testProject #todoist` will be added to testProject.|
|
||||
| #tag | Note that all tags without a project of the same name are treated as normal tags | `- [ ] task #tagA #tagB #tagC #todoist` |
|
||||
| `!!<number>` | The priority of the task (a number between 1 and 4, 4 for very urgent and 1 for natural).<br>**Note**: Keep in mind that very urgent is the priority 1 on clients. So, the priority 1 in the client corresponds to the number 4 here (Because that's how the official API of Todoist is designed.). | `- [ ] task !!4 #todoist` |
|
||||
| 📅YYYY-MM-DD | The date format is 📅YYYY-MM-DD, indicating the due date of a task. | `- [ ] task content 📅2025-02-05 #todoist` <br>Supports the following calendar emojis: 📅📆🗓🗓️|
|
||||
| #projectTag | New tasks will be added to the default project (e.g. inbox). You can change the default project in the settings or use a tag with the same name to specify a particular project. | `- [ ] taskA #todoist` will be added to inbox.<br>`- [ ] taskB #tag #testProject #todoist` will be added to testProject.|
|
||||
| #tag | Note that all tags without a project of the same name are treated as normal tags. | `- [ ] task #tagA #tagB #tagC #todoist` |
|
||||
| `!!<number>` | The priority of the task (a number between 1 and 4, 4 for very urgent and 1 for natural).<br>**Note**: Keep in mind that very urgent is the priority 1 on clients. So, the priority 1 in the client corresponds to the number 4 here (because that's how the official API of Todoist is designed). | `- [ ] task !!4 #todoist` |
|
||||
|
||||
### Set a default project for each file separately
|
||||
|
||||
|
|
@ -101,6 +110,61 @@ You can see the current file's default project in the status bar at the bottom r
|
|||
<img src="/attachment/statusBar.png" width="500">
|
||||
|
||||
|
||||
## Development
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- [Node.js](https://nodejs.org/) (v16+)
|
||||
- npm
|
||||
- An Obsidian vault for testing
|
||||
|
||||
### Quick Start
|
||||
|
||||
The recommended way is to clone the repo directly into your vault's plugin directory, so that builds are immediately available to Obsidian:
|
||||
|
||||
```bash
|
||||
cd /path/to/your-vault/.obsidian/plugins/
|
||||
git clone https://github.com/HeroBlackInk/ultimate-todoist-sync-for-obsidian.git
|
||||
cd ultimate-todoist-sync-for-obsidian
|
||||
npm install
|
||||
```
|
||||
|
||||
### Build
|
||||
|
||||
```bash
|
||||
# Development (watch mode, auto-rebuilds on file change)
|
||||
npm run dev
|
||||
|
||||
# Production (type-check + bundle)
|
||||
npm run build
|
||||
```
|
||||
|
||||
After each rebuild, reload Obsidian (`Ctrl/Cmd+P` → "Reload app without saving") or disable and re-enable the plugin in settings.
|
||||
|
||||
### Project Structure
|
||||
|
||||
```
|
||||
main.ts # Plugin entry point
|
||||
src/
|
||||
├── api/ # Todoist REST & Sync API clients
|
||||
├── data/ # Cache, task parser, database checker
|
||||
├── sync/ # Sync engines (toTodoist, toObsidian, scheduler)
|
||||
├── vault/ # Obsidian vault file operations
|
||||
├── storage/ # Persistent storage, backup, logs
|
||||
├── settings/ # Settings UI and migration
|
||||
├── plugin/ # Event handlers and lifecycle
|
||||
└── ui/ # Modals (task manager, project picker)
|
||||
```
|
||||
|
||||
### Manual Install
|
||||
|
||||
If you built the plugin elsewhere, copy these 3 files into `<vault>/.obsidian/plugins/ultimate-todoist-sync/`:
|
||||
|
||||
- `main.js`
|
||||
- `manifest.json`
|
||||
- `styles.css`
|
||||
|
||||
|
||||
## Disclaimer
|
||||
|
||||
This plugin is for learning purposes only. The author makes no representations or warranties of any kind, express or implied, about the accuracy, completeness, or usefulness of this plugin and shall not be liable for any losses or damages resulting from the use of this plugin.
|
||||
|
|
@ -118,4 +182,3 @@ Contributions are welcome! If you'd like to contribute to the plugin, please fee
|
|||
## License
|
||||
|
||||
This plugin is released under the [GNU GPLv3 License](/LICENSE.md).
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"id": "ultimate-todoist-sync",
|
||||
"name": "Ultimate Todoist Sync",
|
||||
"version": "1.0.43",
|
||||
"version": "2.0.0",
|
||||
"minAppVersion": "1.0.0",
|
||||
"description": "This is the best Todoist task synchronization plugin for Obsidian so far.",
|
||||
"author": "HeroBlackInk",
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "ultimate-todoist-sync",
|
||||
"version": "1.0.0",
|
||||
"version": "2.0.0",
|
||||
"description": "This is a sample plugin for Obsidian (https://obsidian.md)",
|
||||
"main": "main.js",
|
||||
"scripts": {
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
{
|
||||
"1.0.0": "0.15.0"
|
||||
"1.0.0": "0.15.0",
|
||||
"2.0.0": "1.0.0"
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue