Skip to content

Commit 5721cb3

Browse files
committed
chore: prepare release 2.6.0
1 parent e28b29e commit 5721cb3

21 files changed

+1070
-4
lines changed

docs/docs/changelog.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ All notable changes to this project will be documented in this file.
1010
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
1111
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
1212

13-
## Unreleased
13+
## v2.6.0 (2026-02-01)
1414

1515
### ✨ Features
1616

docs/versioned_docs/version-2.6.0/changelog.md

Lines changed: 513 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
label: Commands
2+
position: 4
744 KB
Loading
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---
2+
sidebar_position: 1
3+
---
4+
5+
# Add task
6+
7+
![](./add-task-modal.png)
8+
9+
The 'Add task' set of commands open up a modal that allows you to configure and send tasks to Todoist from Obsidian. Any text selected will be used to pre-populate the task content.
10+
11+
There are a few variants of the command:
12+
13+
- 'Add task', the basic version
14+
- 'Add task with current page in task content', this option will append a link to the current page in the task content before it sends it to Obsidian. The modal will inform you it will do this, but the link is not shown to keep the modal clean.
15+
- 'Add task with current page in task description', this option will append a link to the current page in the task description before it sends it to Obsidian. The modal will inform you it will do this, but the link is not shown to keep the modal clean.
16+
17+
## Copy markdown link after creating task
18+
19+
The 'Add task' button in the modal is a split button with a dropdown menu. You can click the dropdown arrow to choose between three actions:
20+
21+
- **Add task** - Creates the task without copying anything
22+
- **Add task and copy link (app)** - Creates the task and copies a markdown link with an app URI (`todoist://task?id=...`)
23+
- **Add task and copy link (web)** - Creates the task and copies a markdown link with a web URL (`https://todoist.com/app/project/...`)
24+
25+
The copied text format is `task content [Todoist](url)`, which you can paste directly into your Obsidian notes. If you have "append link to content" enabled, an Obsidian backlink to the current page will also be included. The link will open the task in Todoist when clicked.
26+
27+
You can set your preferred default action in the plugin settings under "Task creation" → "Default add task action".
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
sidebar_position: 2
3+
---
4+
5+
# Sync with Todoist
6+
7+
The 'Sync with Todoist' command forces the plugin to re-synchronize your labels, projects, and sections with Todoist. This can be useful if you see "Unknown Project", "Unknown Section", or "Unknown Label" in any rendered tasks.
8+
9+
The plugin pulls this information at startup, but will not refresh it automatically because:
10+
11+
- its expected that these don't change frequently
12+
- to help avoid hitting the Todoist API rate limit
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
---
2+
sidebar_position: 5
3+
---
4+
5+
# Configuration
6+
7+
There are a number of options that allow you to configure the behaviour of the plugin. These are listed below, but the settings page also gives brief descriptions.
8+
9+
## General
10+
11+
### Token storage
12+
13+
Controls where the plugin stores your Todoist API token. There are two options:
14+
15+
- **Obsidian secrets** - Uses Obsidian's built-in secret storage. This is the recommended option as it keeps your token out of your vault files.
16+
- **File-based** - Stores the token in a file at `.obsidian/todoist-token` inside your vault. If you synchronize your vault, you should consider _not_ syncing this file for security reasons. You may want to use this option if you have issues with Obsidian secrets.
17+
18+
Changing this setting will automatically migrate your token to the new storage location.
19+
20+
## Auto-refresh
21+
22+
### Auto-refresh enabled
23+
24+
When enabled, all queries will auto-refresh themselves according to the interval in the settings.
25+
26+
### Auto-refresh interval
27+
28+
This defines, in seconds, the interval between automatic refreshes. This is only used when:
29+
30+
- the auto-refresh is enabled in the settings
31+
- the query does not define an explicit interval
32+
33+
## Rendering
34+
35+
### Task fade animation
36+
37+
When enabled, tasks will fade-in or fade-out when tasks are added or removed respectively. Just some eye candy if you like that.
38+
39+
### Render date icon
40+
41+
When enabled, queries will render an icon accompanying the due date.
42+
43+
### Render project & section icon
44+
45+
When enabled, queries will render an icon accompanying the project & section.
46+
47+
### Render labels icon
48+
49+
When enabled, queries will render an icon accompanying the labels.
50+
51+
## Task creation
52+
53+
### Add parenthesis to page links
54+
55+
When enabled, page links added to tasks created via the [command](./commands/add-task) will be wrapped in parenthesis. This may help identifying links if you primarily use Todoist on mobile platforms.
56+
57+
### Add task button adds page link
58+
59+
When enabled, the embedded add task button in queries will add a link to the page to the task in the specified place. This behaviour can also be disabled completely.
60+
61+
### Default due date
62+
63+
This defines the default due date assigned to tasks created via [commands](./commands/add-task). This can be one of: none, today, or tomorrow.
64+
65+
### Default project
66+
67+
This defines the default project assigned to tasks created via [commands](./commands/add-task). This can be configured to any of your projects, or the Inbox.
68+
69+
If the project referenced here no longer exists, you will get a warning when opening the task creation modal and the Inbox will be used instead.
70+
71+
### Default labels
72+
73+
This defines the default labels assigned to tasks created via [commands](./commands/add-task). You can select zero, one, or multiple labels to be automatically applied to new tasks.
74+
75+
If any of the selected labels no longer exist in Todoist, you will get a warning when opening the task creation modal and they will be skipped.
76+
77+
### Default add task action
78+
79+
This setting controls the default action for the 'Add task' button in the task creation modal. You can choose between:
80+
81+
- **Add task** - Creates the task without copying a link
82+
- **Add task and copy link (app)** - Creates the task and copies a markdown-formatted link using the Todoist app URI
83+
- **Add task and copy link (web)** - Creates the task and copies a markdown-formatted link using the Todoist web URL
84+
85+
This sets the initial button action when opening the modal, but you can change it per-task using the split button dropdown. See the [Add task command documentation](./commands/add-task#copy-markdown-link-after-creating-task) for more details.
86+
87+
## Advanced
88+
89+
### Debug logging
90+
91+
When enabled, the plugin will print extra information to the Developer Tools console. You generally do not need to enable this.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
label: Contributing
2+
position: 6
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# General
2+
3+
## Prerequisites
4+
5+
This plugin is built using Typescript and React. You will need the following tools installed to build and run the plugin:
6+
7+
- [`git`](https://git-scm.com/downloads)
8+
- [`npm`](https://nodejs.org/en/download/)
9+
10+
Alternatively, if you use Nix, there is a flake and a `.envrc` to load the development environment for you. Simply run `direnv allow` to load the environment.
11+
12+
## Building
13+
14+
The plugin source is contained entirely within the `plugin` directory. To build the plugin:
15+
16+
1. Run `cd plugin`
17+
2. Run `npm install` to pull down the required dependencies
18+
3. Run `npm run dev` to build the plugin.
19+
20+
By default, this will build the plugin into `plugin/dist/`. You can manually copy the files an Obsidian vault for testing. For a smoother iteration cycle, you can tell the build process where it should place the output. The build process looks for the `VITE_OBSIDIAN_VAULT` environment variable to find a target vault.
21+
22+
A simple way to configure this once is:
23+
24+
1. Create a file at `plugin/.env.local`. This file is automatically loaded by the build script.
25+
2. Add a line to this file setting the environment variable. For example:
26+
27+
```sh
28+
export VITE_OBSIDIAN_VAULT=/Users/jamiebrynes/Documents/my-vault
29+
```
30+
31+
## Running tests
32+
33+
Its generally a good idea to write tests to ensure that the plugin's functionality is correct. The test suite is, at the time of writing, limited - but it can be useful for developing functionality against a set of tests. To run _all_ tests, from the `plugin` directory:
34+
35+
```
36+
npm run test
37+
```
38+
39+
Alternatively, to run a subset of tests, you can pass in a path to filter the tests ran:
40+
41+
```
42+
npm run test ./src/utils
43+
```
44+
45+
## Linting
46+
47+
This plugin uses [BiomeJS](https://biomejs.dev/) to format and lint our Typescript. This ensures a consistent code style across the plugin. To check the formatting, from the `plugin` directory, run:
48+
49+
```
50+
npm run lint:check
51+
```
52+
53+
Biome can also format code to fix most issues. Note this will modify files on disk:
54+
55+
```
56+
npm run lint:fix
57+
```
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Release Process
2+
3+
This is a brief guide on how to release a new version of the plugin.
4+
5+
1. Update changelog with release version + date.
6+
2. If minor or major release, cut a new version of the docs with `npm run bump-version -- ${VERSION}` in the `docs` directory.
7+
3. Update the versions in:
8+
1. `manifest.json`
9+
2. `package.json`
10+
3. `versions.json`
11+
4. Open a PR + merge
12+
5. Tag the release with `git tag -a ${VERSION}` and push the tag with `git push origin ${VERSION}`
13+
6. Wait for the release build to complete.
14+
7. Update the generated release with the changelog and publish.
15+
8. Test the update in Obsidian.
16+
17+
Note that between steps 4 and 6, there is a period of time where the plugin's `manifest.json` specified version does not have a release associated with it. This only lasts a minute or two, so the impact should be minimal.

0 commit comments

Comments
 (0)