--- type: plug repo: https://github.com/silverbulletmd/silverbullet --- The Tasks plug implements task support in SilverBullet. ## Task states The tasks plug support the standard β€œdone” and β€œnot done” states via `[x]` and `[ ]` notation in the context of a list (this is fairly widely accepted [[Markdown]] syntax): * [ ] This is a task (toggle me!) However, custom states can also be used for extra flexibility: * [TODO] This task is still to do * [IN PROGRESS] In progress task * [RESOLVED] A resolved task * [-] Whatever this state means * [/] Or this one You can cycle through the states by clicking on the status or by running the {[Task: Cycle State]} command while on a task. There is also auto complete for all known custom task states in a space. ## Annotations Tasks can also be annotated with [[Tags]]: * [ ] This is a tagged task #my-tag As well as [[Attributes]]: * [ ] This is a task with attributes [taskAttribute: true] ## Deadlines Tasks can specify deadlines: * [ ] This is due πŸ“… 2022-11-26 When the cursor is positioned inside of a due date, the {[Task: Postpone]} command can be used to postpone the task for a certain period. ## Querying All meta data (`done` status, `state`, `tags`, `deadline` and custom attributes) is extracted and available via the `task` query source to [[πŸ”Œ Directive/Query]]: |name |done |state |page |pos |tags |taskAttribute|deadline | |--|--|--|--|--|--|--|--| |Remote toggle me |false| |πŸ”Œ Tasks|3056| | | | |This is a task (toggle me!) |false| |πŸ”Œ Tasks|321 | | | | |This task is still to do |false|TODO |πŸ”Œ Tasks|420 | | | | |In progress task |false|IN PROGRESS|πŸ”Œ Tasks|454 | | | | |A resolved task |false|RESOLVED |πŸ”Œ Tasks|487 | | | | |Whatever this state means |false|- |πŸ”Œ Tasks|516 | | | | |Or this one |false|/ |πŸ”Œ Tasks|548 | | | | |This is a tagged task #my-tag |false| |πŸ”Œ Tasks|824 |my-tag| | | |This is a task with attributes|false| |πŸ”Œ Tasks|889 | |true| | |This is due |false| |πŸ”Œ Tasks|993 | | |2022-11-26| ## Rendering There is a [[!silverbullet.md/template/task]] template you can use to render tasks nicely rather than using the default table (as demonstrated above). When you use this template, you can even cycle through the states of the task by click on its state _inside_ the rendered query, and it will update the state of the _original_ task automatically (although not yet in reverse) β€”Β this works across pages. Try it (by clicking on the checkbox inside of the directive): * [ ] [[πŸ”Œ Tasks@3056]] Remote toggle me * [ ] Remote toggle me