[[!meta author="spalax"]]
[[!template id=plugin name=taskreport author="[[Louis|spalax]]"]]

# Taskreport

The taskreport plugin provides the `task` directive (see below), displaying
[taskwarrior](http://taskwarrior.org) data as a table.

## Plugin options

* `task_bin`: path to the task binary. Default is "task".
* `task_common`: arguments to all task calls. Can be used, for example, to set
  a non-default taskrc location.
* `task_dir`: directory where to find task data files, if non-default. This
  directory must be handled by IkiWiki. Otherwise, use the `task_common`
  argument. This argument must be relative to the root of the wiki sources.
* `task_tmpdir`: directory where to copy task data files before calling task.
  It can be used to circumvent [[lack of `--read-only`
  option|https://bug.tasktools.org/browse/TW-204]]. Otherwise, those data files may
  be modified by the task call. Setting this directory ensure that they are
  not. This argument should be absolute (I do not know what would happen
  otherwise).
* `task_columns`: List of default columns to display with the
  task directive. Default is all available columns.


## Directive

### Directive options

Options are:

* `arg`: arguments to add to the task call. For example, to display a list of
  pending tasks tagged `ikiwiki`, set it to `"status:pending +ikiwiki"`.
* `show`: number of tasks to show. Default is 0, and means: print all tasks.
* `sort`: tasks are sorted according to this column. Default is `urgency`.
* `reverse`: set yes to reverse order.
* `annotations`: set to yes to display annotations. Default is "yes".

### Task system call

When using this directive, the result of the following system call is printed:

    TASK_BIN export rc.verbose=nothing TASK_COMMON [rc.data.location=DIR] ARG

* `TASK_BIN` and `TASK_COMMON` are the `task_bin` and `task_common` options set in ikiwiki setup.
* If `task_dir` and `task_tmpdir` are set in ikiwiki setup, `DIR` is `task_tmpdir` ; if only `task_dir` is set, `DIR` is `task_dir` ; otherwise, this part is not used.
* `ARG` is the `arg` option of the directive.

### CSS

To allow CSS customization, the following classes are used.

* `task` is the class of the table.
* `urgency`, `project`, etc. are the class of the `th` and `td` elements for the corresponding task attributes.
* `annotation` is the class of the `tr` element of the table containing an annotation.


## Download and install

Code and documentation can be found here : [[https://atelier.gresille.org/projects/gresille-ikiwiki/wiki/Taskreport]]

-- [[Louis|spalax]]
