Plaintext Task Management with Dendron and VSCode

page in a journal with a checklist titled "today" and numbered one through four

Summary

Tasks come in all shapes and sizes.

Sometimes, we simply need a checkbox and a bullet to know what's complete and what's left to-do. Other times, we need to track more complex attributes of our tasks like deadlines, priorities, statuses, assignments, dependencies and more.

In this tutorial, we'll explore a simple and scalable solution to task management with Dendron. Dendron is a developer-focused note taking tool that is open source, local-first, and integrated with Visual Studio Code.

Concepts

Task Notes

Task Notes are a special note in Dendron, like Scratch Notes or Daily Journal Notes. Task Notes use metadata in their frontmatter to help track and display task-related information.

Prerequisites

If you'd like to follow along, make sure you've read Getting Started, and are able to open a workspace.

Steps

Let's imagine a friend is having a birthday, and we want to bake some cookies to help celebrate. The party is in a few hours, so we'll need to act fast!

To show up to the party with cookies, we'll need to complete three tasks:

  1. go to the store and buy the ingredients
  2. mix the ingredients and bake the cookies
  3. bring the freshly-baked cookies to the party

Create bullet tasks

We can begin with the simplest form of task management: a bullet list of checkmarks.

  • Open lookup (Ctrl+L / Cmd+L)
  • Type birthday-cookies in the text prompt and hit enter to create a note
  • Copy the following into the birthday-cookies note:
- [ ] buy ingredients
- [ ] bake cookies
- [ ] bring cookies to party

Check off a bullet task

After writing down our list, we make a quick trip to the store and return, ingredients in hand. We have completed our first task! Let's mark it off our list.

  • Type x into the brackets next to buy ingredients
- [x] buy ingredients
- [ ] bake cookies
- [ ] bring cookies to party

Your bullet list should now render Markdown checkboxes in Preview.

bullet list of tasks with "buy ingredients" checked off

Create a task note

Not that we have the ingredients, it's time to bake. Looking at our bake cookies task, something feels missing...we don't know the steps involved in baking! Let's fix that...

  • Delete the bracket next to bake cookies. Your note should look like the following:
- [x] buy ingredients
- bake cookies
- [ ] bring cookies to party
  • Select the text bake cookies
  • Open the command palette (Ctrl+Shift+P / Cmd+Shift+P) and type task
  • Select the Dendron: Create Task Note command and hit Enter
  • You should see the text birthday-cookies.bake-cookies. If not, correct the text. Hit Enter again.

For reference, we are using the following configuration for this tutorial (the default in Dendron):

    task:
        name: task
        dateFormat: y.MM.dd
        addBehavior: asOwnDomain
        statusSymbols:
            '': ' 'p
            wip: w
            done: x
            assigned: a
            moved: m
            blocked: b
            delegated: l
            dropped: d
            pending: 'y'
        prioritySymbols:
            H: high
            M: medium
            L: low

Visit here for more information on the configuration of special notes like task notes.

Check off a task note

Congrats, you've created a task note! You may notice something strange with this new note. There's something extra in the frontmatter (the YAML text at the top of the file).

🗒 Note: Frontmatter is hidden by default in task notes. To expand, click the arrow next to the top line.

  • Add an 'x' next to status so it reads:
status: 'x'
due: ''
priority: ''
owner: ''
  • Navigate back to the birthday-cookies note.

💡 Tip: To quickly go back to the previous note, use the Alt-Tab shortcut

You should see that the bake-cookies note has a filled checkbox.

- [x] buy ingredients
- [x] [[bake cookies|birthday-cookies.bake-cookies]]
- [ ] bring cookies to party

Task notes give an up-to-date view of the task's status in any place they are linked to. But let's not get ahead of ourselves, we haven't done any baking yet!

  • Return to birthday-cookies.bake-cookies and remove the x next to status so that it reads: status: ''.

🚧 Under Construction: We appreciate your patience as we develop new features like task notes. Currently, checkboxes are under construction, and are not rendering correctly in Preview.

Break into subtasks

Let's make a task for each step:

  1. prepare the oven and ingredients
  2. mix the ingredients
  3. form dough balls and bake in the oven
  • Copy the following into birthday-cookies.bake-cookies
- prepare oven and ingredients
- mix ingredients
- form balls and bake

For the mix ingredients and form balls and bake subtasks, create a task note as you did above:

  • Select the text for the new task
  • Open the Command Palette
  • Run the Dendron: Create Task Note command

Your bake-cookies task should now look as follows:

- [ ] [[prepare oven and ingredients|bake-cookies.prepare-oven-and-ingredients]]
- [ ] [[mix ingredients|bake-cookies.mix-ingredients]]
- [ ] [[form balls and bake|bake-cookies.form-balls-and-bake]]
  • Navigate to bake-cookies.prepare-oven-and-ingredients and check out at the backlinks of the note

Backlinks window with a backlink to the "bake cookies" note

💡 Tip: By nesting our tasks notes (linking to a task inside another task), we can monitor which tasks are dependent on others using backlinks.

  • Return to your birthday-cookies note and hover your mouse above the link to the bake-cookies note. You should see the newly created tasks in Quick Preview.

Quick Preview window showing links in "bake cookies" note

💡 Tip: Try clicking on one of the tasks in the Quick Preview. Look, it's a link!

Look at you go, you've created subtasks!

Now, you can track your progress at a more granular level through the different baking steps. Soon, the smell of cookies will be in the air, and it will be time to party! 🥳

Wrap-up

Takeaways

Upon completing this tutorial, you've learned about:

  • creating a simple tasks using [ ]
  • creating a task note
  • adding subtasks

Task management in Dendron is flexible. Through task-specific features like bullet tasks, task notes, subtasks and configs, as well as familiar features like hierarchies and bidirectional links, Dendron gives you the tools to tackle tasks at any scale.

Next Steps