All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Token path location should no longer be incorrect on Linux machines.
- This plugin is now compatible with Obsidian on mobile devices!
- All task lists created by this plugin now also have the
todoist-task-list
CSS class on them for easier styling. - Added the ability to fold the projects & section groupings when using the grouped task list view.
- Added an additional sorting option
dateDescending
. This behaves the opposite of the sorting optiondate
.
- The date picker in the 'Add task' modal works correctly with more themes.
- Right-click context menu now works with the latest Obsidian version.
- Markdown within tasks is now rendered as part of the task. This means that bold, italics and inline code blocks are supported, as are links (both internal and external).
- Uncompletable tasks have a
disabled
checkbox, this may look different depending on your theme, but it will stop you completing these tasks accidentally. - You can now template the number of tasks returned by the query in the query name by using
{task_count}
- For example, setting the name to
Tasks ({task_count})
will render asTasks (10)
if there are 10 tasks returned by the query.
- For example, setting the name to
- Right clicking on a task will now open a context menu where you can either complete the task or open it in the browser or application.
- Removed built-in update checker as Obsidian has one for plugins now!
- Fixed an issue where queries didn't resolve on first load.
- Refreshing tasks no longer causes any existing task to disappear and then reappear.
- Use
MarkdownRenderChild
correctly to prevent potential memory leaks.
- A long awaited and requested feature is finally here! You can create Todoist tasks from within Obsidian.
- This is accessible through a command which will open a modal for the task details.
- There is a second command which will append the link to the current active page at the end of the Todoist task.
- Any selected text under the cursor will be pre-filled as the task text.
- This does not support Todoist's syntax such as '#' for projects, '@' for labels, and smart date recognition.
- Improved the setup of the plugin. Now the plugin will prompt you for an API token on launch and you can set the token through the settings.
- There is now a message rendered if your query returns no tasks.
- Add default CSS for the default Obsidian theme.
- The 'Refresh Metadata' command no longer has a duplicate 'Todoist' identifier in front of it.
- JSON parsing errors are now correctly handled and displayed to the user.
- Refactored component injection to use the
MarkdownPostProcessor
API.
- This plugin is now compatible with the official Obsidian API. It was developed against Obsidian 0.9.10.
Along with this release, I've released an Obsidian theme which has built-in support for this plugin! π
Check it out at jamiebrynes7/moonlight-obsidian-theme!
- The version of the plugin is now displayed in the settings tab along with a link to the changelog.
- You can specify that the result of a query should be grouped by project & section. To do this, add the
"group": true
field to the JSON query.{ "name": "My Tasks", "filter": "today | overdue", "group": true }
- You can now check for plugin updates in the Todoist plugin settings.
- The JSON query is now validated and errors are presented in a more user-friendly fashion:
- Any
workspace-leaf
which has an injected query will have thecontains-todoist-query
CSS class attached. This allows you to style these leafs independently of the others.
- Errors are displayed more prominently in the injected Todoist query.
- Added the ability to turn on debug logging in the plugin.
- Fixed an issue where the 'Render labels' setting did not work.
-
Tasks now render labels under them by default. This can be toggled in the settings (along with the accompanying icon).
-
Tasks now render projects & section under them by default. This can be toggled in the settings (along with the accompanying icon).
-
The layout of the project, date, and label combo can be configured in CSS. For example:
/* To make date & project sit inline */ .task-metadata { display: inline; } /* To make date & project sit on top of each other. */ .task-metadata { display: block; }
-
-
There is a new command
Todoist: Refresh Metadata
which will re-fetch your projects, sections, and labels. If you add/remove/rename these, you should refresh the metadata. This is done automatically at startup. -
Added
contains-task-list
to match latest Obsidian styling. -
The entire task (
li
element) has thetask-overdue
class on it, in addition to the date element specifically. -
The task (
li
element) has eitherhas-time
orhas-no-time
derived from the date field. (No date or time will also havehas-no-time
). -
Add support for Obsidian v0.8.14
- Fixed a bug where tasks with datetimes were sometimes sorted incorrectly.
- Fixed an issue where the
task-overdue
status would disappear if a task above it was checked off.
- Fixed an issue where subtasks would cause errors with sorting.
- Subtasks are now nested under their parent if both are included in the filter. If a subtask is captured by a filter, but the parent is not, it will be listed as a top level item. You may need to adjust your priority CSS to accommodate these changes. For example:
+ .todoist-p1 > input[type="checkbox"] { - .todoist-p1 input[type="checkbox"] { /* This matches against the input element rendered for a priority 1 task. */ }
- Tasks now render dates under them by default. This can be toggled in the settings (along with some the accompanying icon). If you choose to use icons, I recommend you at least add the following CSS to your own (tweaking may be required based on your theme):
.task-calendar-icon { vertical-align: middle; height: 17px; width: 17px; }
- Added support for controlling the ordering of the rendered tasks. This can be done by either priority or date, or a combination of them (e.g. - sort by priority, then by date). To use this feature, amend your queries:
```json { "name": "My Tasks", "filter": "today | overdue", "autorefresh": 30, "sorting": ["date", "priority"] } ```
- Ported the plugin to (almost entirely) Typescript.
- Each rendered task's CSS now contains information about the task's priority. You can use this information to style each priority differently. These classes are
todoist-p1
,todoist-p2
,todoist-p3
, andtodoist-p4
. For example:.todoist-p1 input[type="checkbox"] { /* This matches against the input element rendered for a priority 1 task. */ }
- When a task is removed or added, it now transitions with a smooth fading effect, rather than immediately being added/removed. This can be turned off in the settings.
- Added support for auto-refreshing queries. This can be set at a global level within the settings tab or overridden for each individual query. For example:
```json { "name": "My Tasks", "filter": "today | overdue", "autorefresh": 30 } ```
- Added a setting tab in the Obsidian setting menu. There are three settings included in this release:
- "Task fade animation" - controls whether to use the fade animation
- "Auto-refresh" - controls whether all queries should auto-refresh
- "Auto-refresh interval" - controls the default interval for auto-refreshing queries
- The rendered task list now uses the ordering as defined by the Todoist API.
- The injected Todoist query components are correctly destroyed when removed from the DOM.
This was the initial release of the Obsidian x Todoist plugin. It contained the basic functionality for:
- materializing tasks in an Obsidian note
- allowing you to check tasks off from an Obsidian note