This is an old revision of the document!
Table of Contents
ToDo Plugin
Compatible with DokuWiki
- 2024-02-06 "Kaos" yes
- 2023-04-04 "Jack Jackrum" yes
- 2022-07-31 "Igor" yes
- 2020-07-29 "Hogfather" yes
Similar to do, structtasks
Needed for bulletodo
Previous authors: Babbage
Download and Installation
Search and install the plugin using the Extension Manager. Refer to Plugins on how to install plugins manually.
Usage and examples
Creating tasks
After installing the plugin, simply enter this information on the page you wish to create the todo list:
<todo>Title of todo Action</todo>
Each <todo>
tag will create one checkbox for the action.
To create a checkbox that is check by default, create your todo like this:
<todo #>Title of todo Action</todo>
Using bulleted lists (*
) is recommended, as it will allow you to more easily make a 'list' out of your items to do.
Assign tasks to persons
To assign users use the @
symbol like this:
<todo @leo>Task for leo</todo> <todo @leo #>Completed task for leo</todo>
The name of the user can use:
- the following characters: a-z, A-Z, 0-9, .-_
- No (white)spaces are allowed!
So @leo.eibler
, @Leo_Eibler
will work but @Leo Eibler
will not work!
Multiple users can be assigned in one todo (separated by space character). This way a todo can show up in todo lists of different users.
<todo @leo @runout @somebody>Task for leo and runout and somebody</todo>
Render username
The username
option can be added to the <todo ..>
tag to select how the user name will be displayed. The available options are user
, real
, or none
.
''user'' option
<todo @leo username:user>Task with username shown</todo>
displays as
☐ [leo]Task with username shown
NOTE: user
is the default render option.
''real'' option
<todo @leo username:real>Task with users real name shown</todo>
displays as
☐ [leo eibler]Task with users real name shown
''none'' option
<todo @leo username:none>Task with no username shown</todo>
displays as
☐ Task with no username shown
NOTE: When a task is marked complete and the username
is set to none
the username is not displayed but is recorded in the <todo ..>
tag.
Start and Due date
Set a start and/or due date and get colored output if todo has started or is due
<todo start:YYYY-MM-DD>Text</todo> <todo due:YYYY-MM-DD>Text</todo> <todo start:YYYY-MM-DD due:YYYY-MM-DD>Text</todo>
Colors,… can be set in the style.css file in the plugin directory (lib/plugin/todo)
Set task priority
To set priority for to-do item add 1-3 exclamation marks in the opening tag:
! | low priority |
!! | medium priority |
!!! | high priority |
More than 3 exclamation marks are parsed as high priority.
<todo !!!>Text</todo>
Formatting
Formatting is not allowed inside of the <todo></todo>
tags. However, if you wish for your text to be bold or have some other type of style (other than the default one provided), you can surround the todo tag with the formatting of your choice. The resulting action text should then be displayed with your choice of formatting when your changes have been saved.
QuickButton
A quickbutton for inserting todo syntax is available in the editor toolbar. You can click the button (which is pictured as a checked-checkbox) or you can use the keyboard shortcut of [T]
.
Uncheck All Button
Add ~~TODO:UNCHECKALL~~
to the page. This generates a button with the label “Uncheck all todos”. Once clicked, all ToDos of this page are reset. A minor edit with the summary “Unchecked all ToDos” is created.
Lightweight Task Management System - Lists
The new version (since version 2014-03-17) of the todo plugin allows to create an easy to use task management system to collect all todos from all pages on a single page. This feature deprecates the previous 'searchpattern' plugin integration.
First turn off caching
~~NOCACHE~~
Omit Pages from TODOLISTs
If you have pages you never want to include in TODOLISTs, you can put following on these pages:
~~NOTODO~~
Display all open and closed todos from all pages
~~TODOLIST~~
Counting todos and checked todos
Print a summary of checked todos and total todos like (10/14)
~~TODOLIST short:yes~~
Assignments (users to tasks)
Filter the assignments, allowed values: yes
, no
, usernames in format@username
or username
, or placeholders @@USER@@
or @@MAIL@@
which are replaced by username or e-mail of current logged in user.
~~TODOLIST assigned:yes~~ ~~TODOLIST assigned:User1,User2~~ ~~TODOLIST assigned:@User1,@User2~~ ~~TODOLIST assigned:@@USER@@~~ ~~TODOLIST assigned:@@MAIL@@~~ finds tasks assigned using someones email.
Show/Hide checkbox
Do (not) show the checkbox, allowed values: yes
or no
~~TODOLIST checkbox:no~~
Render username
Render the username as id, full name or not at all, allowed values: user
or real
or none
~~TODOLIST username:real~~
Render header
Render the header as pageID, as the first header of the page or not at all, allowed values: id
or firstheader
or none
~~TODOLIST header:firstheader~~
Show/Hide Start/Due Date
Do (not) show the Start/Due date, allowed values: yes
or no
~~TODOLIST showdate:yes~~
Completed Data Filter
Completion state
Filter the completion state, allowed values: yes
or no
~~TODOLIST completed:no~~ ~~TODOLIST completed:yes~~
Completion Date
Filter by date the box was checked.
~~TODOLIST completedbefore:<date>~~ ~~TODOLIST completedafter:<date>~~ ~~TODOLIST completedat:<date>~~
<date> can be:
Y-m-d like 2014-06-12 or a value like +10 or -10 or 0
invalid values will be substituted with today's date
Completion User (Who checked it)
Filter by user who checked the box. Comma separated list.
~~TODOLIST completeduser:jack,daniel,jessie~~
Start/Due Date Filter
Filter the TODOLIST by Start/Due Date. Absolute and relative Dates are possible.
~~TODOLIST startbefore:<date>~~ ~~TODOLIST startafter:<date>~~ ~~TODOLIST startat:<date>~~ ~~TODOLIST duebefore:<date>~~ ~~TODOLIST dueafter:<date>~~ ~~TODOLIST dueat:<date>~~
<date> can be:
Y-m-d like 2014-06-12 or a value like +10 or -10 or 0
invalid values will be substituted with todays date
Combined options
~~TODOLIST assigned:@@USER@@ completed:yes ~~ ~~TODOLIST assigned:Gerrit,leo completed:no ~~
Some default values for these options can be set in the Configuration Manager
Filter the namespace of the task list
I've added the following option to the ~~TODOLIST~~
tag: ns
:
If omitted it uses ns:all
.
It can be used with the following parameters:
all
– displays todo's from everywhere (the current default behaviour)/
– only displays todo's from pages containing in the ROOT namespace<string>
– Where string can be any text. It checks the page-id if it starts with this string and then returns the pages with todo's that do; for example:.
or ending in:.
– display this namespace and subnamespaces (not much tested).:
– display only subnamespaces (not much tested)
~~TODOLIST ns:todo~~
returns all todo's from the page todo in the root of the wiki, or from the namespaces starting with todo or from the page todo and the namespaces starting with todo.
~~TODOLIST ns:todo:~~
returns all todo's from the namespace todo.
~~TODOLIST ns:todo:r~~
returns all todo's from the namespaces or pages under todo, starting with an r
.
Example of 'all todos'
Example of 'all todos' from many namespaces
If you want to display more than one namespace in a single page, you can put a TODOLIST for each :
~~TODOLIST ns:foo:~~ ~~TODOLIST ns:bar:~~
Plugin Settings
Allow actions to also link to pages with the same name?
Default: Off
This option (when enabled) will allow your actions to also link to a page with the same name. This way, if you have important details about an action, you can place them in this link.
However, Backlinks to the TODO do not currently work. Also, if you use the Move Plugin, the link will not be updated/moved if the details page that the link points to is moved.
What namespace should your actions be created in (".:" = Current NS, Blank = Root NS)
Default: [Empty]
This option allows you specify where actions links should be placed. Using “.:” will cause the actions to link to whatever namespace you are currently in. Leaving it blank or typing “:” will cause all actions to link to the root namespace. Using something like “.:actions:” will cause the actions to link to whatever the current namespace is, plus an “actions” namespace. (Added with version 9-9-09)
Should the actions have strike-through applied when checked?
Default: On
This option (when enabled) will place a strike-through in the actions that have been completed. When disabled, an action can be checked, but the text will not have strike-through applied.
If AllowLinks is disabled, should clicking the actions' text mark the action complete?
Default: On
When this option is enabled, and the links option is disabled, then clicking on the text of an action will mark that action as being complete. (Added with version 10-14-09)
Development
Please request your features and issues in the tracker at https://github.com/leibler/dokuwiki-plugin-todo/issues.
Known Issues
The ~~TODOLIST~~
-functionality finds every <todo>…</todo>
item, even when inside a code or a file block. Also, after being rendered on a TODOLIST page, toggling the checkbox of that item will update its code accordingly. This was reported in Issue #12 on Github
ChangeLog
For the current default download package (see start of this page) one should refer to its GitHub Atom Feed:
- remove further searchpattern references and (probably) defunct code. (2024-05-10 17:17)
- bump date (2024-05-10 16:09)
- added option to set priority for to-do item: (2024-05-10 16:05)
- Merge pull request #172 from Zweihorn/patch-1 (2024-04-29 13:56)
- Update plugin.info.txt (2024-04-29 13:55)
- Update plugin.info.txt (2024-04-29 13:54)
- Update plugin.info.txt (2024-04-27 23:18)
- How to update local tags to match remote (2024-03-15 14:41)