Inline Todo Plugin

This plugin introduces an "inline todo" syntax that will be collected into a single note for easy viewing.

The plugin supports multiple "styles" of inline todo, which can be switched in the options. I've also written the plugin in a way that should make it easy to add new styles if needed. Here is an example of the default style (which is based on confluence).

I take a lot of notes about various things. It can be helpful to
keep my TODOs together with the content they pertain to.

- [ ] @TODO Think about how to make a plugin to solve this +joplin

This way the TODO benefits from context.

- [ ] @TODO +joplin //2022-04-04 Release the TODO plugin!

I'd still like a way to view all these! See below.

The text behind @ is an assignee/category and there can only be one of these. The text behind + is a tag, there can be multiple tags.

These inline TODOs are collected and aggregated into a single note. Currently there are 2 styles heading and table. Table is likely the most practical, because it can be combined with Hieuthi's table sorting plugin. The default is heading style because I like it the best :). Here's an example of the heading style

# DUE
- [Note a](:/e710b7af31fc47c89ca5fc4d3c0ecb3a): 2022-01-13 Have some me time

- [Note b](:/beef7ed6d91649149751cea8d14af02d): 2022-03-12 Meat delivery +burgers

# Bob
## Folder 2
- [Note c](:/ef3aac56ffa246baa6a96cc94dd8f25e): Call Teddy +repairs

# Linda
## Folder 1
- [Note b](:/beef7ed6d91649149751cea8d14af02d): I'll get to this eventually

The README goes into a lot more detail!

This plugin is based on a tool that I wrote using the Joplin api before the plugin system existed. Which means that I'm quite happy with where it's at feature-wise. If you have a feature request, feel free to make an issue on github, but know that it won't likely be added unless you submit a PR yourself.

You can install it now by searching for "Inline TODO" in the Joplin plugin search!

10 Likes

Thank you very much! You have made me a present! I have installed your plugin and I am rewriting all my todos now to use it.
Thank you! It's amazing! Fast, clean, without errors on big abount of checkboxes!

So far (even I have read about "PR yourself" :grin:)...
It is not convenient to have mixed todos from Family and from Work. It would be nice if there would be an option to create a Summary TODO note only for the current notebook.

2 Likes

v1.3.1

  • Add styling to the Confluence style TODOS (in the renderer). Thanks @SeptemberHX !

v1.4.0

  • Add a mark TODO as done command from the context menu. Thanks @alondmnt!
1 Like

Hello. Excuse me if this is too trivial. I'm novice in Joplin.

I'm not sure of how to make this plugin work.

I'm using Joplin 2.8.8 in Linux Mint (flatpak package). Installed the plugin, re-launch Joplin and set a note like this:
title:my-todos-test
text:

testing....

- [ ] @TODO hard task to do
- [ ] @TODO +happy easy task to do +fun

and one more

- [ ] @TODO this is all for now

And then make another note in same notebook
title: todo summary
text:

<!-- inline-todo-plugin -->
# important work

[my-todos-test](:/eb16fef1b1794d6c9ec1ad6828483d0a) : what is is supposed to do this

What it is supposed to happen? Shouldn't I see my todos in the summary note?
imagen

The plugin is triggered by opening the note that contains the special comment. Have you tried switching to a different note and then back?

If that doesn't work, maybe a setting was accidentally changed so it doesn't recognize the Todos? For example, you might have set the type to "simple".

Yes, and closing and reopening joplin too. These are my options

imagen

You're not the only one with this issue. Maybe I can get you to help me track the bug down. Can you toggle the development tools and let me know if there is any error there?

Of course, I can try to do it.

I've followed the instructions in Getting started with plugin development | Joplin.
Then, when I try yo joplin this is the result:

/usr/local/lib/node_modules/yo/node_modules/npm-registry-fetch/node_modules/@npmcli/fs/lib/fs.js:6
const fsSync = Object.fromEntries(Object.entries(fs).filter(([k, v]) =>
                      ^

TypeError: Object.fromEntries is not a function
    at Object.<anonymous> (/usr/local/lib/node_modules/yo/node_modules/npm-registry-fetch/node_modules/@npmcli/fs/lib/fs.js:6:23)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (/usr/local/lib/node_modules/yo/node_modules/npm-registry-fetch/node_modules/@npmcli/fs/lib/index.js:2:6)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (internal/modules/cjs/helpers.js:25:18)

I'm running this in Linux Mint 20.

The result of npm --version && node --version

6.14.4
v10.19.0

It seems that node version is too low, and I got lot of warnings while installing yeoman....

Or sorry about that. There's no need to build the plugin yourself. Development tools can be toggled in the Help menu of your Joplin install. (Help -> toggle development tools)

Ok. I think I got it using
/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=joplin-desktop --file-forwarding net.cozic.joplin_desktop @@u %u @@ --env dev
Now I see this besides joplin 'usual' panels


What to do now?

Thats the dev environment and I suspect you don't have the plugin loaded in that, it has its own profile. The instructions were above your post (Help > Toggle development tools) - Just use your Joplin application.

Maybe this:


could tell you something

Hello! It is working now. Thank you

1 Like

An idea what could have triggered it to start working?

One thing I forgot to ask was, how many notes do you have?

Ok, yes. It works in my work (at the office, Arch linux, Joplin 2.8.8), but it doesn't work at home, Linux Mint 20.1, Joplin same version, but flatpak. So must be the flatpak package....

Not too much, I'm beggining to use Joplin, maybe 150... and only 2 notes have the '@THING' to test the plugin