NAME
tdl_export.byte - Filter and merge xml TODO list.
SYNOPSIS
[--rss] [--tdl] [--filter s] [--split-by-day n] [[-help] | [--help]]
[file...]
DESCRIPTION
This manual page documents briefly the tdl_export.byte command.
This manual page was written for the Debian GNU/Linux distribution
because the original program does not have a manual page.
The tdl_export.byte tool can be used to merge of filter TODO lists. The
result is a new TODO list, or a XML document in RSS format built using
the dates of items of the final TODO list.
--rss
Output RSS.
--tdl
Output a new TODO list (default, use to merge TODO lists).
--filter s
Apply the given filter on read groups.
--split-by-day prefix
Split todo list(s) to create one separate todo list by day, in
files named prefix->year<->month<->day<.tdl.
file
Files to convert. The file "-" stand for the standard input.
-help, --help
Display an help message.
EXAMPLES
Merging the TODO lists of files f1.tdl, f2.tdl and f3.tdl. The result
(the final TODO list) is printed on standard output.
tdl_export.byte f1.tdl f2.tdl f3.tdl
The same result can be obtained with the following command, since "-"
as filename indicates to read a TODO list on standard input:
cat f2.tdl | tdl_export.byte f1.tdl - f3.tdl
A filter can be given in parameter. This filter is applied on each read
TODO list and allows to select only some groups or items matching the
filter. The syntax of filters in given further. In the command below,
we only keep items in "done" state and non empty groups:
tdl_export.byte f1.tdl f2.tdl f3.tdl --filter 'not empty and state: done'
It is also possible to generate a XML document in RSS format instead of
a new TODO list, for example to indicate the completed tasks (with
"done" state), as in the following command:
tdl_export.byte f1.tdl f2.tdl f3.tdl --filter "state: done" --rss > output.rss
At last, one can split the final TODO list in various TODO lists, one
per day, by using the end date of each item. The prefix of generated
files is given in parameter to the --split-by-day option. The generated
files are named prefix->year<->month<->day<.tdl:
tdl_export.byte f1.tdl f2.tdl f3.tdl --filter "state: done" --split-by-day /tmp/things-done
FILTERS
A small language allows to define filters on TODO lists, that is
conditions on groups and items to select them. Here is a description of
this language in BNF-style: [1]FILTER::=
| group: REGEXP
| item: REGEXP
| empty
| state: STATE
| desc: REGEXP
| before DATETIME
| FILTER
and
FILTER
| FILTER
or
FILTER
| not FILTER
| ( FILTER )
[2]STATE::=
| done
| suspended
| high
| normal
| low
[3]REGEXP::=
| quoted_string
| [^'\n' '"' '(' ')' ' ' '\009' '\012' ':' '/' '<' '>']+
[4]DATETIME::=
| [0-9]+-[0-9]+-[0-9]+
| [0-9]+-[0-9]+-[0-9]+ [0-9]+:[0-9]+:[0-9]+
.PP The REGEXP is a regular expression as the ones of the
Str module of Objective-Caml.
DATETIME can be for example "2007-08-08" or "2007-08-08 23:12:07". If
no time is give, then hour, minute and second are considered to be 0.
As you can see, filters on groups and items are indicated together in
one expression. This is just to simplify the expression of filters.
When a filer is applied on a TODO list, this filter is first splitted
in two: one filter for groups and another filter for items, since some
filters are invalid for items (like "empty") and some are invalid for
groups (like "state:"). For example the filter "state: done and not
empty" will give two filters: "state: done" for items and "not empty"
for groups.
LICENSE
This manual page was written by Sylvain Le Gall gildor@debian.org for
the Debian GNU/Linux system (but may be used by others). Permission is
granted to copy, distribute and/or modify this document under the terms
of the GNU Lesser General Public License, Version 2.1 or any later
version published by the Free Software Foundation; considering as
source code all the file that enable the production of this manpage.
AUTHOR
Sylvain Le Gall <gildor@debian.org>
Author.
COPYRIGHT
Copyright © 2005, 2006 Sylvain Le Gall
Nov 12, 2006