From f85fc2d8c9ab5615424c0253c049607aee9da8b0 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Thu, 4 Jun 2009 21:02:08 -0400 Subject: [PATCH] Documentation Removal - Removed all online docs, which are no longer needed in the repository. --- html/30second.html | 131 --------- html/advanced.html | 554 --------------------------------------- html/color.html | 128 --------- html/config.html | 476 --------------------------------- html/custom.html | 179 ------------- html/date.html | 161 ------------ html/download.html | 155 ----------- html/faq.html | 260 ------------------ html/filter.html | 140 ---------- html/git.html | 410 ----------------------------- html/images/color.png | Bin 67009 -> 0 bytes html/import.html | 158 ----------- html/links.html | 221 ---------------- html/recur.html | 220 ---------------- html/sequence.html | 155 ----------- html/setup.html | 141 ---------- html/shadow.html | 129 --------- html/shell.html | 134 ---------- html/simple.html | 356 ------------------------- html/tab_completion.html | 108 -------- html/task.css | 126 --------- html/task.html | 248 ------------------ html/versions.html | 358 ------------------------- 23 files changed, 4948 deletions(-) delete mode 100644 html/30second.html delete mode 100644 html/advanced.html delete mode 100644 html/color.html delete mode 100644 html/config.html delete mode 100644 html/custom.html delete mode 100644 html/date.html delete mode 100644 html/download.html delete mode 100644 html/faq.html delete mode 100644 html/filter.html delete mode 100644 html/git.html delete mode 100644 html/images/color.png delete mode 100644 html/import.html delete mode 100644 html/links.html delete mode 100644 html/recur.html delete mode 100644 html/sequence.html delete mode 100644 html/setup.html delete mode 100644 html/shadow.html delete mode 100644 html/shell.html delete mode 100644 html/simple.html delete mode 100644 html/tab_completion.html delete mode 100644 html/task.css delete mode 100644 html/task.html delete mode 100644 html/versions.html diff --git a/html/30second.html b/html/30second.html deleted file mode 100644 index 554fb0490..000000000 --- a/html/30second.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - 30-Second Tutorial - - - - - -
- - - - - - -
- - -
-
-
-
-

30-second Tutorial

-
-

- For the excessively lazy. - Add two tasks: -

- -
% task add Read task documents later
-% task add priority:H Pay bills
- -

- Easy. See that second one has a High priority? Now let's look at those tasks: -

- -
% task ls
-
-ID Project Pri Description
- 2         H   Pay bills
- 1             Read task documents later
- -

- They are ordered by priority. Let's mark number 2 as done: -

- -
% task 2 done
-% task ls
-
-ID Project Pri Description
- 1             Read task documents later
- -

- Gone. Now let's delete that remaining task, because, well, - why bother now we are already using task: -

- -
% task delete 1
-% task ls
-No matches
- -

- Easy. But now consider checking out what task can really do... -

-
- -
-
-
-

- Copyright 2006-2009, P. Beckingham. All rights reserved. -

-
- -
-
-
-
-
-
-
-
-
-
-
-
- - - -
- -
- - - - - - - diff --git a/html/advanced.html b/html/advanced.html deleted file mode 100644 index 07ad69021..000000000 --- a/html/advanced.html +++ /dev/null @@ -1,554 +0,0 @@ - - - - Advanced Usage - - - - - -
- - - - - - -
- - -
-
-
-
-

Advanced Usage

-
-

- Here are the other commands, in some detail. -

- - % task -

- With no arguments, this command will generate a help message that - lists all these commands. -

- -

- However, if the following configuration variable is specified: -

- -
default.command=list pri:H
- -

- Then this command will be run whenever task is run without arguments. - This means that your most common task command can be run simply - with the command: -

- -
% task
-[task list project:foo]
-
-ID Project Pri Description
- 1 foo     H   Design the thing
- 2 foo         Build the thing
- - % task projects -

- This report generates a list of all the different projects that you - are using along with a count of the pending tasks for each project. - For example: -

- -
% task projects
-
-Project   Tasks
-Errands       1
-Birthdays     3
-Car           2
- - - % task summary -

- This report lists all the projects and a summary of their task - status. -

- -
% task summary
-
-Project  Remaining Avg age Complete 0%                        100%
-Errands          1  3 days      50% XXXXXXXXXXXXXXXX
-Birthdays        3  7 mths       0%
-Car              2   2 wks      25% XXXXXXXXX
- -

- This shows the project, the remaining tasks, the average age of each - task, the percentage completed (remaining vs total) and a bar - indicating that percentage. -

- - % task <id> append ... -

- Appends the additional description to an existing task. -

- - % task annotate <id> additional note... -

- Allows an annotation to be attached to an existing task. Each - annotation has a time stamp, and when displayed, the annotations - are shown under the task description. For example: -

- -
% task add Go to the supermarket
-% task annotate 1 need milk
-% task ls
-
-ID Project Pri Due Active Age     Description
- 1                                Go to the supermarket
-                                  3/23/2009 need milk
-

- The date of the annotation uses the "dateformat" configuration - variable. -

- - % task duplicate 1 /foo/bar/g +tag priority:H -

- This duplicates task 1, then applies the modifications specified, - which change all "foo" to "bar" in the description and annotations, - adds the tag "tag", and sets the priority to "H". -

- - % task delete <id> -

- There are two ways of getting rid of tasks - mark them as done, or - delete them. -

- - % task undelete <id> -

- If a task was inadvertently deleted, it may be undeleted, provided that no - reports have been run since the deletion. Ideally, the undelete command is - run immediately after the erroneous delete command. -

- -

- If a report is run (such as "task list"), then task performs a garbage - collection that removes deleted tasks, and the task cannot be undeleted. -

- - % task done <id> -

- This is how a task is marked as done. -

- - % task undo <id> -

- If a task was recently marked as done, and no report has been run, it - may be possible to cancel the completed status of the task as though - "task done ..." was never run. -

- - % task list ... -

- The list report will show the active status, and age of the task in - addition to the columns that "task ls" shows. It is just a more - detailed list. -

- - % task long ... -

- The long report will show the entry date and start date of a task, - in addition to the columns that the "task list" shows. -

- - % task start <id> -

- This marks a task as started (and therefore active), which is shown - in the "list" report: -

- -
% task list
-
-ID Project Pri Due Active Age     Description
-12 Errand  L                      Remember to deposit check
-...
-
-% task start 12
-% task list
-
-ID Project Pri Due Active Age     Description
-12 Errand  L       *      3 days  Remember to deposit check
-...
- - % task active -

- Shows all active tasks, that is, the tasks for which the - "task start ..." command was run, as shown above. -

- - % task stop <id> -

- Marks a task as inactive, by removing the start time. -

- - % task overdue -

- Simply lists all the task that have a due date that is past, in - "list" format. -

- - % task history -

- This report shows you an overview of how many tasks were added, - completed and deleted, by month. It looks like this: -

- -
% task history
-
-Year Month     Added Completed Deleted Net
-2008 March        21        16       0   5
-     April        13        11       1   1
-     May           8        14       3  -9
- -

- This shows that for the three months that task has been used, March - and April saw the total number of tasks increase, but in May the - number decreased as more task were completed than added. -

- - % task ghistory -

- The ghistory report is a "graphical" version of the history - report. It shows a colored bar graph and legend. -

- - % task timesheet 2 -

- The timesheet report shows a list of tasks completed and started - during a one-week period. In the example above, 2 weeks of tasks - are shown. -

-

- By default, the report starts on a Monday. To override this - value, add an entry to your .taskrc file like this: -

weekstart=Sunday
-

- - % task calendar -

- This report shows a calendar of the current month, with any task - due or overdue dates marked on it. Color is used to mark these - dates. -

- -
% task calendar
-
-May 2008
-
-Su Mo Tu We Th Fr Sa
-             1  2  3
- 4  5  6  7  8  9 10
-11 12 13 14 15 16 17
-18 19 20 21 22 23 24
-25 26 27 28 29 30 31
- - % task next -

- This report shows you the tasks you should probable work on next. - Task will scan all the tasks and will pick two task from each - project to report. Those two tasks will be chosen in order of - overdue, due soon, High, Medium or Low priority. Essentially task - chooses the two most important task for each project and displays - them ordered in the usual way. -

- -

- If you wish to show a different number of tasks per project, modify - the entry in .taskrc: -

- -
next=2
- -

- To be your preferred number. -

- - % task <id> ... -

- When a task id is specified, everything applies to just that task. - Suppose we needed to correct a task: -

- -
% task ls
-
-ID Project Pri Description
-12 Errand  L   Remember to deposit chekc
-...
-
-% task 12 Remember to deposit bonus check
-% task ls
-
-ID Project Pri Description
-12 Errand  L   Remember to deposit bonus check
-...
- - % task oldest [limit] -

- Lists the oldest tasks. The number of tasks shown is set by - the configuration variable: -

report.oldest.limit=10
- This value can be overridden at run time by specifying the - number of tasks on the command line: -
task oldest 5
-

- - % task newest [limit] -

- Lists the newest tasks. The number of tasks shown is set by - the configuration variable: -

report.newest.limit=10
- This value can be overridden at run time by specifying the - number of tasks on the command line: -
task newest 5
-

- - % task <id> /from/to/ -

- If a task has been entered with a typo, it can be easily corrected - by this command. For example: -

- -
% task ls
-
-ID Project Pri Description
-12 Errand  L   Remember to deposit chekc
-...
-
-% task 12 /chekc/check/
-% task ls
-
-ID Project Pri Description
-12 Errand  L   Remember to deposit check
-...
- -

- This command makes a single correction to the first occurrence of - "from" in a task description. -

- -

- If a task is annotated, the annotation can also be modified using - this command. -

- - % task <id> /from/to/g -

- The "g" modifier to the substitution command causes every occurrence - of "from" to be replaced with "to", in both the description and any - annotations. -

- - % task tags -

- This command will generate a list of all the tags that are currently - in use by task. -

- - % task info <id> -

- This command gives detailed information about a single task. It - will tell you when the task was entered, when started, its status, - tags, and more. -

- - % task stats -

- This command generates a list of statistics about your task usage, - such as the average time it takes to complete a task, how often new - tasks are added, and more. -

- - % task completed -

- This generates a list of all tasks that have been completed, sorted - by their completion date. -

- - % task export <file name> -

- This instructs task to write out a CSV format dump of all tasks, - both pending and completed, to the file specified. This is how you - might view tasks in a spreadsheet. -

- - % task colors -

- This command displays all the colors that task supports. -

- - % task version -

- This can be used to show the version number of task, and to display - all the current configuration settings, as read from the .taskrc - file. -

- - % task rc:<file> ... -

- By specifying rc:, it is possible to force task to use an alternate - .taskrc file. By default, task looks in your home directory, so these two - commands are essentially identical: -

- -
% task list
-% task rc:~/.taskrc list
- -

- What this override allows, is the possibility of keeping your task lists - completely separate, say for work and home. This can be accomplished with - the following commands (valid for bash): -

- -
% alias htask="task rc:/home/me/.taskrc_home"
-% alias wtask="task rc:/home/me/.taskrc_work"
-% htask list
-...
-% wtask list
-...
- - % task <id> "new description" -

- Not strictly a command, the replacement of the description can - be achieved by quoting the entire description. The quotes are - necessary in case one of the description words looks like a task - command. -

- - % task <id> edit -

- This command allows you to use your text editor to edit all aspects - of a task. The specified task will be written to a file, and your - text editor will be invoked. If you modify the task in the text - editor, task will update accordingly. -

-

- Task will first check to see if you have defined a text editor - in the 'editor' configuration variable. If not, task will - check to see if you defined a text editor in the VISUAL - environment variable. If not task will check to see if you - defined a text editor in the EDITOR environment variable. - If all those fail, task launches vi. -

- - % task <id> fg:... bg:... -

- Not strictly a command, the setting of the fg and bg (foreground - and background) attributes determines the colors used to represent - the task. Valid foreground colors are: -

- -
         bold          underline          bold_underline
-black    bold_black    underline_black    bold_underline_black
-red      bold_red      underline_red      bold_underline_red
-green    bold_green    underline_green    bold_underline_green
-yellow   bold_yellow   underline_yellow   bold_underline_yellow
-blue     bold_blue     underline_blue     bold_underline_blue
-magenta  bold_magenta  underline_magenta  bold_underline_magenta
-cyan     bold_cyan     underline_cyan     bold_underline_cyan
-white    bold_white    underline_white    bold_underline_white
- -

- Note that these are not just colors, but combinations of colors and - attributes. Valid background colors are: -

- -
on_black    on_bright_black
-on_red      on_bright_red
-on_green    on_bright_green
-on_yellow   on_bright_yellow
-on_blue     on_bright_blue
-on_magenta  on_bright_magenta
-on_cyan     on_bright_cyan
-on_white    on_bright_white
- -

- Note also that this capability does depend on whether your terminal - program can display these colors. -

- - % task add project:Home -- pri:H +tag /from/to/ -

- The -- argument can be used to tell task to stop interpreting - the command line arguments. In the example above, a new task - is added for the project 'Home', then the -- argument appears, - and therefore all remaining arguments are part of the - description. In this case, the description is "pri:H +tag - /from/to/". This is one way to override task's interpretation - of the command line. The other way is to put the entire - description in quotes. -

-
- -
-
-
-

- Copyright 2006-2009, P. Beckingham. All rights reserved. -

-
- -
-
-
-
-
-
-
-
-
-
-
-
- - - -
- -
- - - - - - - diff --git a/html/color.html b/html/color.html deleted file mode 100644 index f10fd145c..000000000 --- a/html/color.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - Color Usage - - - - - -
- - - - - - -
- - -
-
-
-
-

Colors

-
-

- Task supports color in several places. In cases where you may - specify a color, a foreground, a background, or a combination - foreground and background color may be used. The following are - valid foreground colors: -

- -
         bold          underline          bold_underline
-black    bold_black    underline_black    bold_underline_black
-red      bold_red      underline_red      bold_underline_red
-green    bold_green    underline_green    bold_underline_green
-yellow   bold_yellow   underline_yellow   bold_underline_yellow
-blue     bold_blue     underline_blue     bold_underline_blue
-magenta  bold_magenta  underline_magenta  bold_underline_magenta
-cyan     bold_cyan     underline_cyan     bold_underline_cyan
-white    bold_white    underline_white    bold_underline_white
- -

- and the following are valid background colors: -

- -
on_black    on_bright_black
-on_red      on_bright_red
-on_green    on_bright_green
-on_yellow   on_bright_yellow
-on_blue     on_bright_blue
-on_magenta  on_bright_magenta
-on_cyan     on_bright_cyan
-on_white    on_bright_white
- -

- Depending on your terminal color choices, task can display all - the colors it supports with the command: -

- - - -
- -
-
-
-

- Copyright 2006-2009, P. Beckingham. All rights reserved. -

-
- -
-
-
-
-
-
-
-
-
-
-
-
- - - -
- -
- - - - - - - diff --git a/html/config.html b/html/config.html deleted file mode 100644 index 3cf316f35..000000000 --- a/html/config.html +++ /dev/null @@ -1,476 +0,0 @@ - - - - Task Configuration - - - - - -
- - - - - - -
- - -
-
-
-
-

Configuring Task

-
-

- Task recognizes several entries in the .taskrc file for - configuration purposes. Valid entries are of the form: -

- -
name=value
- -

- Valid examples are: -

- -
data.location
-
- This is a path to the directory containing all the task files. - By default, it is set up to be ~/.task, for example: - /Users/paul/.task -
- -
locale
-
-

- A locale can be specified as a combination of an ISO 639-1 - language code (such as 'en'), and an ISO 3166 country code - (such as 'US'), combined in to specify which strings file - to load ('en-US'). -

- -

- If a corresponding strings file is found, it will be loaded, - and all subsequent error messages and feedback will be - localized. It is an error to specify a locale without a - corresponding strings file. -

-
- -
confirmation
-
- May be "yes" or "no", and determines whether task will ask for - confirmation before deleting a task. -
- -
echo.command
-
- May be "yes" or "no", and causes task to display the ID and - description of any task when you run the start, stop, do, undo, - delete and undelete commands. The default value is "yes". -
- -
nag
-
- This may be a string of text, or blank. It is used as a prompt - when a task is completed that is not considered high priority. - The "task next" command lists important tasks, and completing - one of those does not generate this nagging. Default value is: - - Note: try to stick to high priority tasks. See "task next". -
- -
next
-
- Is a number, defaulting to 2, which is the number of tasks for - each project that are shown in the "task next" command. -
- -
curses
-
- Determines whether task uses ncurses to establish the size of - the window you are using, for text wrapping. -
- -
blanklines
-
- May be "on" or "off". Prevents the display of unnecessary blank - lines so that task makes better use screen real estate on small- - screened devices. -
- -
dateformat
-
-

- This is a string of characters that define how task formats dates. - The default value is: -

- -
m/d/Y
- -

- which means dates look like: -

- -
6/7/2008
- -

- The string should contain the characters: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CharacterMeaningExample
mminimal-digit month1, 12
dminimal-digit day1, 30
ytwo-digit year08
Mtwo-digit month01, 12
Dtwo-digit day01, 30
Yfour-digit year2008
-

- -

- The string may also contain other characters to act as spacers, - or formatting. Other values could include (but are not limited to): -

- -

- - - - - - - - - - - - - - - - -
dateformat - How it looks
d/m/Y7/6/2008
YMD20080607
m-d-y6-7-08
-

-
- -
monthsperline
-
- Determines how many months the "task calendar" command - renders across the screen. Defaults to however many will - fit. If more months that will fit are specified, task will - only show as many that will fit. -
- -
weekstart
-
- The day of the week that represents the first day of the week. - Defaults to "Monday". -
- -
displayweeknumber
-
- Determines whether or not the week number is displayed in the - calendar report. Defaults to "yes". -
- -
editor
-
- Specifies which text editor you wish to use for when the - -
task edit <ID>
- - command is used. Task will first look for this configuration - variable. If found, it is used. Otherwise task will look - for the VISUAL or EDITOR environment variables, before it - defaults to using 'vi'. -
- -
defaultwidth
-
- The width of tables used when ncurses support is not available. - Defaults to 80. -
- -
fontuderline
-
- May be "on" or "off". Determines if font underlines or ascii - dashes should be used to underline headers. - Defaults to on. -
- -
due
-
- - This is the number of days into the future that define when a - task is considered due, and is colored accordingly. - Defaults to 7. -
- -
color
-
- May be "on" or "off". Determines whether task uses color. - When "off", task will use dashes (-----) to underline column - headings. -
- -
- color.overdue
- color.due
- color.pri.H
- color.pri.M
- color.pri.L
- color.pri.none
- color.active
- color.tagged
- color.recurring -
-
- These are the coloration rules. They correspond to a particular - attribute of a task, such as it being due, or being active, and - specifies the automatic coloring of that task. The value may - be one optional foreground color (see below) and one optional - background color. For example, the value may be: -
- bold_red on_bright_yellow -
- -
color.tag.X
-
- Colors any task that has the tag X. -
- -
color.project.X
-
- Colors any task assigned to project X. -
- -
color.keyword.X
-
- Colors any task where the description contains X. -
- -
default.project
-
- Provides a default project name for the "task add ..." command. -
- -
default.priority
-
- Provides a default priority for the "task add ..." command. -
- -
default.command
-
-

- Provides a default command that is run every time task is - invoked with no arguments. For example, if set to: -

- -
default.command=list project:foo
- -

- Then task will run the "list project:foo" command if no - command is specified. This means that by merely typing: -

- -
% task
-[task list project:foo]
-
-ID Project Pri Description
- 1 foo     H   Design the thing
- 2 foo         Build the thing
- -

- Note that the value of this variable is simply the command - line that you would ordinarily type, but without the - preceding "task" program name. -

-
- -
shadow.file
-
-

- If specified, designates a file path that will be autoamtically - written to by task, whenever the task database changes. In other - words, it is automatically kept up to date. -

- -

- The shadow.command configuration variable is used to determine - which report is written to the shadow file. There is no color - used in the shadow file. -

- -

- This feature can be useful in maintaining a current file for - use by the "Samurize" program. -

-
- -
shadow.command
-
-

- This is the command that is run to maintain the shadow file, - determined by the shadow.file configuration variable. The - format is identical to that of default.command - please see - the documentation for default.command. -

- -

- If this command is not specified, task will use the default.command - value instead. If that is not specified, the command "list" is used. -

-
- -
shadow.notify
-
- When this value is set to "on", task will display a message - whenever the shadow file is updated by some task command. -
- -
locking
-
-

- Determines whether task uses file locking when accessing the pending.data - and completed.data files. Default to "on". Solaris users who store - the task data files on an NFS mount may need to set locking to "off". -

- -

- Note that setting this value to "off" is dangerous. It means that - another program may write to the task.pending file when task is - attempting to do the same. -

-
- -
import.synonym.id
-
import.synonym.uuid
-
import.synonym.status
-
import.synonym.tags
-
import.synonym.entry
-
import.synonym.start
-
import.synonym.due
-
import.synonym.recur
-
import.synonym.end
-
import.synonym.project
-
import.synonym.priority
-
import.synonym.fg
-
import.synonym.bg
-
import.synonym.description
-
- If any of these configuration variables are found, they influence - data import by specifying a single additional field name synonym. - If a data import is failing because certain column names are not - being recognized, then this is how the field mapping can be - controlled. -
- -

- Note that the command: -

- -
task version
- -

- will display the configuration variables found in the .taskrc file, - and will warn you of any variables that are not recognized. -

- - -
- -
-
-
-

- Copyright 2006-2009, P. Beckingham. All rights reserved. -

-
- -
-
-
-
-
-
-
-
-
-
-
-
- - - -
- -
- - - - - - - diff --git a/html/custom.html b/html/custom.html deleted file mode 100644 index 8f85c6dec..000000000 --- a/html/custom.html +++ /dev/null @@ -1,179 +0,0 @@ - - - - Custom Reports - - - - - -
- - - - - - -
- - -
-
-
-
-

Custom Reports

-
-

- Task allows you to customize reports, to a limited degree. - The "list", "long", "ls", "oldest" and "newest" reports are - all now custom reports, whereas in previous releases of task - they were not mutable. This means they can be modified, - renamed, or deleted. -

- -

- More importantly, you can define your own. Here are the - three necessary items in the .taskrc file that define a new - report: -

- -
report.mine.description=Just the essentials
-report.mine.columns=id,project,priority,description
-report.mine.sort=priority-,project+
- -

- This defines a report, called "mine", that has four columns: - id, project, priority and description. It will be sorted on - two columns: by descending priority then ascending project. - The description that shows up in the task command usage page - is "Just the essentials". Because this report is called - "mine", it can be run with the command: -

- -
% task mine
- -

- An optional filter can also be specified like this: -

- -
report.mine.filter=priority:H +bug
- -

- This adds a filter so that only tasks with priority "H" and - with the "bug" tag are included in the report. This filter - definition is optional. -

- -

- An optional limit can also be specified, which limits the - number of tasks shown in the report. If a limit is not - specified, then the number of tasks is not limited. -

- -
report.mine.limit=10
- -

- Here is a list of all the possible columns that may be included - in a report: -

- -

- It is also possible to override the default columns names, if - the following line is added to your .taskrc file: -

- -
report.mine.labels=ID,Project,Priority,Description of task
- -

- Note that there must be the same number of labels as there are - columns to label, and they must appear in the same sequence. -

- -
    -
  • id -
  • uuid -
  • project -
  • priority -
  • entry -
  • start -
  • due -
  • age -
  • active -
  • tags -
  • recur -
  • description_only -
  • description -
  • tag_indicator -
  • recurrence_indicator -
- -

- Custom reports will show up in the task command line usage. -

- -
- -
-
-
-

- Copyright 2006-2009, P. Beckingham. All rights reserved. -

-
- -
-
-
-
-
-
-
-
-
-
-
-
- - - -
- -
- - - - - - - diff --git a/html/date.html b/html/date.html deleted file mode 100644 index e667432a8..000000000 --- a/html/date.html +++ /dev/null @@ -1,161 +0,0 @@ - - - - Date Handling - - - - - -
- - - - - - -
- - -
-
-
-
-

Date Handling

-
-

- Task reads dates from the command line, and displays dates in the reports. -

- -

- In order to do this in a flexible way, task obeys a configuration variable that - determines the expected and desired date format. See the - Configuring Task page for details. -

- -

- In addition to exactly specifying the date, such as: -

- -
% task ... due:7/10/2008
- -

- task supports a flexible variety of alternatives. For example: -

- -
% task ... due:today
- -

- Similarly: -

- -
% task ... due:yesterday
-% task ... due:tomorrow
- -

- Here are some other forms that are accepted. The day number, followed by an - ordinal: -

- -
% task ... due:23rd
- -

- End of month: -

- -
% task ... due:eom
- -

- End of year: -

- -
% task ... due:eoy
- -

- End of week (Friday): -

- -
% task ... due:eow
- -

- Next Friday: -

- -
% task ... due:Friday
- -

- Note that next Friday means seven days from now if today is Friday, otherwise - it means the next occurring Friday. Most of these forms may be specified using - abbreviations, provided they are unique. For example: -

- -
% task ... due:fri
- - -
- - -
-
-
-

- Copyright 2006-2009, P. Beckingham. All rights reserved. -

-
- -
-
-
-
-
-
-
-
-
-
-
-
- - - -
- -
- - - - - - - diff --git a/html/download.html b/html/download.html deleted file mode 100644 index 72a2dcf4a..000000000 --- a/html/download.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - Task Downloads - - - - - -
- - - - - - -
- - -
-
-
-
-

Task Downloads

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- You should use the latest stable release if possible, but - the prior release is provided in the event of - incompatibility or defect. -
-
-
1.8.0 (Latest)
?/?/2009
Sourcetask-1.8.0.tar.gz
Fedora 10 Linuxtask-1.8.0-1.fc10.i386.rpm
Ubuntu 9.04 (jaunty) Linuxtask_1.8.0-0ubuntu1_i386.deb
Debian 5.0.1 (lenny) Linuxtask_1.8.0-1_i386.deb
OS X Leopard (Intel)task-1.8.0.pkg
1.7.0 (Prior)
5/14/2009
Sourcetask-1.7.0.tar.gz
Fedora RPMtask-1.7.0-2.fc10.i386.rpm
- Unless you are a developer, you should not use the - development version. It is provided for those who - wish to contribute code to the project. -
-
-
Development versionGit repositoryhttp://github.com/pbeckingham/task
-
- -
-
-
-

- Copyright 2006-2009, P. Beckingham. All rights reserved. -

-
-
-
-
-
-
-
-
-
-
-
-
-
- - - -
- -
- - - - - - - diff --git a/html/faq.html b/html/faq.html deleted file mode 100644 index b1c7950fa..000000000 --- a/html/faq.html +++ /dev/null @@ -1,260 +0,0 @@ - - - - Frequently Asked Questions - - - - - -
- - - - - - -
- - -
-
-
-
-

Frequently Asked Questions

-
-

- (Actually, that's a misnomer. These are really Repeatedly Asked - Questions.) -

- -

- - Q: When I redirect the output of task to a file, I lose all - the colors. How do I fix this? - -
- A: Task knows (or thinks it knows) when the output is not going - directly to a terminal, and strips out all the color control - characters. Prevent this with the following entry in your - .taskrc file: -

_forcecolor=on
-

-
- -

- - Q: How do I backup my task data files? Where are they? - -
- A: Task writes all pending tasks to the file ~/.task/pending.data - and all completed and deleted tasks to ~/.task/completed.data. - They are text files, so they can just be copied to another - location for safekeeping. Don't forget there is also the - ~/.taskrc file that contains your task configuration data. -
-
- To be sure, and to future-proof your backup, consider backing - up all the files in the ~/.task directory, because upcoming - releases will make greater use of this directory. -

-
- -

- - Q: How can I separate my work tasks from my home tasks? - Specifically, can I keep them completely separate? - -
- A: You can do this by creating an alternate .taskrc file, - then using shell aliases. Here is are example Bash - commands to achieve this: - -

% cp ~/.taskrc ~/.taskrc_home
-% (now edit .taskrc_home to change the value of data.location)
-% alias wtask="task"
-% alias htask="task rc:~/.taskrc_home"
- - This gives you two commands, 'wtask' and 'htask' that - operate using two different sets of task data files. -

-
- -

- - Q: Can I revert to a previous version of task? How? - -
- A: Yes, you can revert to a previous version of task, - simply by downloading the - prior version and installing it. If you find a bug in - task, then this may be the only way to work around the bug, - until a new release is made. -

-

- Note that it is possible that the task file format will - change. For example, the format changed between versions - 1.5.0 and 1.6.0. Task will automatically upgrade the file - but if you need to revert to a previous version of task, - there is the file format to consider. This is yet another - good reason to back up your task data files! -

-
- -

- - Q: I'm using Ubuntu 9.04, and I want task to word-wrap - descriptions. How do I do this? - -
- A: You need to install ncurses, by doing this: -

% sudo apt-get install libncurses5-dev
- Then you need to rebuild task from scratch, starting with -
% cd task-X.X.X
-% ./configure
-...
- The result should be a task program that knows the width - of the terminal window, and wraps accordingly. -

-
- -

- - Q: How do I build task under Cygwin? - -
- A: Task is built the same way everywhere. But under Cygwin, you'll - need to make sure you have the following packages available - first: - -

    -
  • gcc -
  • make -
  • libncurses-devel -
  • libncurses8 -
- - The gcc and make packages allow you to compile the code, and - are therefore required, but the ncurses packages are optional. - Ncurses will allow task to determine the width of the window, and - therefore use the whole width and wrap text accordingly, for a - more aesthetically pleasing display. -

-
- -

- - Q: Do colors work under Cygwin? - -
- A: They do, but only in a limited way. You can use regular - foreground colors (black, red, green ...) and you can - regular background colors (on_black, on_red, on_green ...), - but underline and bold are not supported. -
-
- If you run the command: -

% task colors
- Task will display all the colors it can use, and you will - see which ones you can use. -
-
- See the color documentation for - more details on which colors can be used. -

-
- -

- - Q: How do I use '+word' in a task description, and prevent it - from being interpreted as a tag? - -
- A: There are several ways to do this. The simplest is to use - the '--' argument in the command line, and task will assume - that everything afterwards is part of the description. For - example: -

% task add -- +tag
- Allows the task description to be "+tag". If you use the - command: -
% task <id> edit
- Then you are free to put (almost) anything in the description - field without task interpreting it. -

-
- -
- -
-
-
-

- Copyright 2006-2009, P. Beckingham. All rights reserved. -

-
- -
-
-
-
-
-
-
-
-
-
-
-
- - - -
- -
- - - - - - - diff --git a/html/filter.html b/html/filter.html deleted file mode 100644 index 7bb5a11a3..000000000 --- a/html/filter.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - Task Filters - - - - - -
- - - - - - -
- - -
-
-
-
-

Task Filters

-
-

- A task filter is a means of reducing a task report to a - subset that may consist of all tasks that have a specific - project, priority, tag, or part of the description. -

- -

- A task filter consists of additional command line options, - that are specified in the same way as when a task is added. -

- -

- All task reports can make use of filters. -

- -

- For example, the report: -

- -
% task list
- -

- Lists all tasks. -

- -
% task list the
- -

- Lists only tasks with "the" in the task description. -

- -
% task list project:Home priority:H
- -

- Lists only tasks with both the "Home" project and "H" priority. -

- -
% task list +shopping
- -

- Lists only tasks with the "shopping" tag. -

- -
% task list +shopping -gift
- -

- Lists tasks that have the "shopping" tag, but do not have the - "gift" tag. -

-
- -
-
-
-

- Copyright 2006-2009, P. Beckingham. All rights reserved. -

-
- -
-
-
-
-
-
-
-
-
-
-
-
- - - -
- -
- - - - - - - diff --git a/html/git.html b/html/git.html deleted file mode 100644 index 5ed782371..000000000 --- a/html/git.html +++ /dev/null @@ -1,410 +0,0 @@ - - - - git - - - - - -
- - - - - - -
- - -
-
-
-
-

Using git

-
-

- First you need to tell git who you are. These commands will - write to ~/.gitconfig, and will be used to identify you when - you commit changes. Plus, I like color. -

- -
% git config --global user.name "John Doe"
-% git config --global user.email "john@doe.com"
-% git config --global color.ui=always
- -

- Now we will clone the repository, which involves downloading - about 2MB of files. Git repositories are very compact. We - will clone the repository from github. This takes a minute or - so. -

- -
% cd
-% git clone git://github.com/pbeckingham/task.git task.git
-% cd task.git
- -

- You just pulled the entire history of task changes since it - was uploaded to github. That will be missing about a year and - a half of prior changes, which were in Subversion. Let's - build task: -

- -
% autoreconf
-...
-% ./configure --prefix=/usr/local
-...
-% make
-...
- -

- The task binary will be in the src directory. If you run: -

- -
% sudo make install
- -

- Then task will be copied to /usr/local/bin, according the - --prefix argument used above. /usr/local is the default - prefix, so that argument wasn't necessary, but illustrates - it's use. -

- -

- Meanwhile, you have just created a local copy of the - repository. You can do anything to this copy except push to - github. Only the repository owner can push to github, or - additional users identified by the owner (with additional - monthly github fee). In order to get your changes back to - github, they have to go through the owner, either in the form - of a patch via email, or by creating your own github account, - pushing to you own task repository clone (github calls it a - fork), then asking the owner to pull directly from your - repository. -

- -

- You only need to clone once, unless you feel like starting - over, or creating additional clones. Ordinarily, you update - your local copy by pulling changes from github with: -

- -
% git pull
- -

- Right now, nothing new should be pulled, because you just - cloned. Sometimes you'll see changes that have either been - made by the owner, or merged in from others, by the owner. - Let's take a look at the commit history: -

- -
% git log
- -

- You see a whole series of commits. Each commit is a set of - file changes that were made somewhere. Let's look at branches. - Try this: -

- -
% git branch
-* master
- -

- This is telling you that you have only one branch, called - master. The asterisk tells you that this is your current - branch, which is redundant because you only have one. But - there are other branches on github. See those with: -

- -
% git branch -a
-* master
-  remotes/origin/1.6.1
-  remotes/origin/1.7.0
-  remotes/origin/HEAD -> origin/master
-  remotes/origin/master
- -

- A remote is what git calls another repository. The origin - remote is the repository that this clone originated from. - This output tells you that there is a 1.6.1 branch on github, - a 1.7.0 branch on github, and a master branch on github. It's - not obvious, but your local master (the first one shown) is - tracking remotes/origin/master, which means changes on the - remote will get merged to the local tracking branch on pull. -

- -

- The convention used by task is to create a new branch whenever - work begins on a new version. When that version is released, - the branch is merged to master, but retained. At time of - writing, 1.6.1 is the currently released version of task, and - so remotes/origin/1.6.1 and remotes/origin/master are - currently identical, with all new development happening on the - 1.7.0 branch. When 1.7.0 is released, it will get merged to - master, and the 1.6.1 branch will be deleted. Nothing will be - lost, because 1.6.1 is already merged to master. Let's look - at tags: -

- -
% git tag
-... -v1.4.3 -v1.5.0 -v1.6.0 -v1.6.1 - -

- Those tags are just labels that represent the last commit for - that version. You may notice that a change in the tag naming - convention, that occurred when the owner realized that git - will not allow a tag and a branch of the same name at the same - time, so now there is a "v" in the tags. -

- -

- Let's make a branch called 1.7.0 that tracks changes to - remotes/origin/1.7.0. That means you can pull 1.7.0 changes - from github into your local branch, to keep up to date. -

- -
% git checkout -b 1.7.0 origin/1.7.0
-Branch 1.7.0 set up to track remote branch 1.7.0 from origin.
-Switched to a new branch '1.7.0'
-
-% git branch -a
-* 1.7.0
-  master
-  remotes/origin/1.6.1
-  remotes/origin/1.7.0
-  remotes/origin/HEAD -> origin/master
-  remotes/origin/master
- -

- Now you can see that 1.7.0 is your current branch (*). That - means you are looking at the 1.7.0 codebase. Let us now - assume you intend to make a change, and submit the patch. We - will add Solaris 8 as a supported OS. This will affect two - files. First check status: -

- -
% git status
-# On branch 1.7.0
-nothing to commit (working directory clean)
- -

- No changes. That's what we expect. Now make the changes (any - editor will suffice, but assume vi): -

- -
% vi NEWS
-% vi html/task.html
- -

- Now we expect to see changes. Status says: -

- -
% git status
-# On branch 1.7.0
-# Changed but not updated:
-#   (use "git add <file>..." to update what will be committed)
-#   (use "git checkout -- <file>..." to discard changes in working directory)
-#
-#	modified:   NEWS
-#	modified:   html/task.html
-#
-no changes added to commit (use "git add" and/or "git commit -a")
- -

- Git sees that those two files have changed, but as git states, - they are not added to the commit. Git allows you to stage - changes, then commit the staged changes - a two-step process - that gives you complete control. Git also allows you to - commit all changes and bypass the staging, but that's a - shortcut that is risky, because you can inadvertently commit - things you didn't want to. Let's see what git thinks changed: -

- -
% git diff
-diff --git a/NEWS b/NEWS
-index 74adecd..30d4f8f 100644
---- a/NEWS
-+++ b/NEWS
-@@ -12,6 +12,7 @@ Task has been built and tested on the following configurations:
-   - Ubuntu 8.10 Intrepid Ibex
-   - Ubuntu 9.04 Jaunty Jackalope
-   - Arch Linux
-+  - Solaris 8
-   - Solaris 10
-   - Cygwin 1.5.25-14
- 
-diff --git a/html/task.html b/html/task.html
-index 66ee777..a2254f6 100644
---- a/html/task.html
-+++ b/html/task.html
-@@ -193,6 +193,7 @@
-                     <li>Ubuntu 8.10 Intrepid Ibex
-                     <li>Ubuntu 9.04 Jaunty Jackalope
-                     <li>Arch Linux
-+                    <li>Solaris 8
-                     <li>Solaris 10
-                     <li>Cygwin 1.5.25-14
-                   </ul>
- -

- Git has correctly spotted the changes. The "git diff" command - always tells you the difference between the last commit and - the current state. Now we will stage the two changes: -

- -
% git add NEWS html/task.html
-% git diff
- -

- No changes are reported. That's because if files are staged, - then diff shows the difference between the staged files and - the current state. We staged all changes, hence no diff. If - we wanted to see the difference between the last commit and - the staged files, try this: -

- -
% git diff --cached
-(same as unstaged diff)
- -

- Now the status shows that the files are staged: -

- -
% git status
-# On branch 1.7.0
-# Changes to be committed:
-#   (use "git reset HEAD <file>..." to unstage)
-#
-#	modified:   NEWS
-#	modified:   html/task.html
-#
- -

- Now a commit command will commit the staged files: -

- -
% git commit -m "Added Solaris 8 as a supported platform"
-[1.7.0 03308eb] Added Solaris 8 as a suported platform
- 2 files changed, 2 insertions(+), 0 deletions(-)
- -

- Now make a patch: -

- -
% git format-patch HEAD^
-0001-Added-Solaris-8-as-a-supported-platform.patch
- -

- HEAD is a label that means the current head of the branch, or - in other words, what was last committed. HEAD^ means the - commit before that. HEAD~2 is the one before that, HEAD~3 - etc. When we say create a patch of HEAD^, it means the same - as: -

- -
% git diff HEAD^
- -

- Which means show the difference between the previous commit - and the current commit, but the patch has extra identifying - information in it. Take a look at that patch file. If you - ran: -

- -
% git format-patch HEAD~10
- -

- Git will create 10 patch files, one for each commit. To get - the patch applied to the repository, email it to the owner. - The owner will then apply the patch with: -

- -
owner> git apply 0001-Added-Solaris-8-as-a-supported-platform.patch
- -

- Then push the changes with: -

- -
owner> git push
- -

- And that makes them available on github, which means in turn - that the next time you run: -

- -
% git pull
- -

- Your changes will have come full circle. -

-
- -
-
-
-

- Copyright 2006-2009, P. Beckingham. All rights reserved. -

-
- -
-
-
-
-
-
-
-
-
-
-
-
- - - -
- -
- - - - - - - diff --git a/html/images/color.png b/html/images/color.png deleted file mode 100644 index fff43d59b2d0bb638035a7a228d1921eae7c7d2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67009 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
  • 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 - - - Data Import - - - - - -
    - - - - - - -
    - - -
    -
    -
    -
    -

    Data Import

    -
    -

    - Tasks can be imported from files with this command: - -

    % task import file
    - - A variety of different file types are recognized by task, namely: - -
      -
    • Tasks exported from task prior to version 1.5.0. -
    • Tasks exported from task version 1.5.0 and later. The file - format changed with 1.5.0. -
    • todo.sh files. -
    • CSV files with a variety of recognized column names. -
    • Plain text files, with one task listed per line. -
    • Task command line format. -
    -

    - -

    - Task makes a good effort to determine which of these formats a - file is. It does this by reading the file, and looking for - familiar patterns. For example, the easiest files to recognize - are those exported from task itself, because they all have a - header line that comes in only three variations. Other formats - are a little harder to identify, but they all have their own - identifying characteristics. -

    - -

    - The most complex import is when a CSV file is recognized. - Task needs a field header line in order to map columns to task - data items. For example, the if the following file is - imported: -

    - -
    number,status,task
    -1,pending,task one
    -2,pending,task two
    - -

    - Task will map the "number" field to task's "id" field, etc, - based on name. Task has a list of synonyms that it uses to - map fields, but you can specify your own override with any of - the following configuration variables: -

    - -
      -
    • import.synonym.id -
    • import.synonym.uuid -
    • import.synonym.status -
    • import.synonym.tags -
    • import.synonym.entry -
    • import.synonym.start -
    • import.synonym.due -
    • import.synonym.recur -
    • import.synonym.end -
    • import.synonym.project -
    • import.synonym.priority -
    • import.synonym.fg -
    • import.synonym.bg -
    • import.synonym.description -
    - -

    - Please note that it is wise to backup your task data files - before an import. -

    -
    - -
    -
    -
    -

    - Copyright 2006-2009, P. Beckingham. All rights reserved. -

    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - -
    - -
    - - - - - - - diff --git a/html/links.html b/html/links.html deleted file mode 100644 index c42146540..000000000 --- a/html/links.html +++ /dev/null @@ -1,221 +0,0 @@ - - - - Task on the Web - - - - - -
    - - - - - - -
    - - -
    -
    -
    -
    -

    Task on the Web

    -

    - Task links from around the web... -

    - -
    - February 2009, Cmd Task Manager -
    -
    - Elliott Bradley takes a brief look at task 1.4.3. -
    - -
    - February 2009, Todo.txt CLI Manages Your Tasks from the Command Line -
    -
    - Gina Trapani generously mentions task in an article about the newly updated todo.sh 2.0. -
    -
    - -
    - February, 2009, My command line based task management tools -
    -
    - Richard Querin talks about his task management tools. - Richard generously provides the Debian packages for task. -
    -
    - -
    - February, 2009, Common Apps -
    -
    - Archlinux.org mentions task on a page which is - a point of reference for people looking for software to fill a particular need. -
    -
    - -
    - November 2008, Task repository on GitHub -
    -
    - For developers: the task git repository on github.com is now public. -
    -
    - -
    - October 2008, Using Task and Dropbox to manage your To-Do list -
    -
    - by Richard Querin. Richard discusses the ease of setting up task to - use DropBox to share todo lists between work and home. -
    -
    - -
    - September 2008, Task visualization -
    -
    - by Stas Antons. Stas - a colleague of mine - presents a visualization - of the simplicity of task. -
    -
    - -
    - June 2008, Building Debian Packages For Task -
    -
    - by Richard Querin. Richard has been providing Debian packages for the - various task releases, and discusses how he got up to speed. -
    -
    - -
    - June 2008, Task 1.0.1 - an attempt at a Cygwin Build How-To -
    -
    - by Richard Querin. Richard shows us how to build task using Cygwin, after - a cry for help on the todo.txt mailing list. -
    -
    - -
    - June 2008, The second task movie -
    -
    - This YouTube movie was made to illustrate some of the features of the task - program, back when task 1.0.0 was released. While task has grown - significantly since then, the commands shown are still valid. It will - soon be time for a new movie! -

    - - This movie has a voice-over that explains what is going on. -

    - - For a higher-quality version, download the whole - movie file (10MB). -

    -
    - -
    - December 2006, The first task movie -
    -
    - This original YouTube task movie was made to illustrate the features of the - then-unreleased task program. The idea was to get some feedback and see - whether anyone was interested in a new implementation of todo.sh, that added - features that are not easily possible with a shell implementation. -

    - - This movie has no voice-over, and you may notice that it exactly duplicates - the commands used in the original todo.sh movie (below). That is, until it - deviates because of new task commands. -

    -
    - -
    - June 2006, The original todo.sh movie -
    -
    - by Gina Trapani. This is the original YouTube todo.sh movie, made to - illustrate the power and simplicity of the original todo.sh program. -
    -
    - -
    - June 2006, Todo.sh, the inspiration for task -
    -
    - by Gina Trapani. The website that introduced me to the power and - simplicity of the original todo.sh program. Contains useful links - and resources - take a look! -
    - -
    -
    -
    -

    - Copyright 2006-2009, P. Beckingham. All rights reserved. -

    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - -
    - -
    - - - - - - - diff --git a/html/recur.html b/html/recur.html deleted file mode 100644 index 925cd9c9d..000000000 --- a/html/recur.html +++ /dev/null @@ -1,220 +0,0 @@ - - - - Recurring Tasks - - - - - -
    - - - - - - -
    - - -
    -
    -
    -
    -

    Recurring Tasks

    -
    -

    - Task supports recurring tasks, which is a task that keeps falling due, on a - regular schedule. An example of this may be "pay rent". Here is how - recurring tasks work in task: -

    - -

    - Ordinarily, a task is a single item that is entered in the pending state, and - remains so until it is either completed or deleted. This is an example of a - single instance task. -

    - -

    - A recurring task is different. When a recurring task is entered, it remains - hidden from view, but acts as a root task for a task instances that are - generated on a regular basis. Consider the example: -

    - -
    % task add Pay rent due:7/1/2008 recur:monthly
    - -

    - If today's date is 7/10, for example, then that due date is in the past, and - you might expect there to be an already overdue task for 7/1/2008, and another - due on 8/1/2008. This means that from that root, task has created two - instances with different due dates. -

    - -
    % task list
    -
    -ID Project Pri Due         Active Age   Description
    -1              7/1/2008           1 min Pay rent
    -2              8/1/2008           1 min Pay rent
    -
    -2 tasks
    - -

    - Task creates any overdue tasks, then creates one additional due task. These - new task instances are then completed or deleted as you normally would. -

    - -

    - In the example above, a new task instance is created every month, and this will - repeat indefinitely. Task also supports an end date. Suppose you are taking - every Friday off work for the summer. You'll need to submit your TPS report on - Thursdays instead: -

    - -
    % task add TPS report due:thursday recur:weekly until:8/31/2008
    - -

    - This create a weekly recurring task that expires on 8/31/2008. What this means - is that after all those task instances have been created, then completed or - deleted, the root task will expire and disappear. Task will tell you what it - is doing when this happens. -

    - -

    Deletion

    -

    - When a recurring task is deleted, you will be asked if you would also like to - delete all recurring task instances: -

    - -
    % task del 1
    -Permanently delete task? (y/n) y
    -This is a recurring task.  Do you want to delete all pending
    -recurrences of this same task? (y/n) y
    - -

    Modification

    -

    - When a recurring task is modified, all the other recurring task instances will - be modified. For example, if you raise the priority of one of the recurring - task instances, all will be modified. -

    - -

    Recurrence Periods

    -

    - In the above examples, the recurrence period was specified as "monthly" and - "weekly". Task supports several ways of specifying this: -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    PeriodMeaning
    daily, day, 1d, 2d ...Every day, or a number of days
    weekdays - Monday, Tuesday, Wednesday, Thursday and Friday, - skipping weekend days -
    weekly, 1w, 2w ...Every week, or a number of weeks
    biweekly, fortnightEvery two weeks
    monthly, 1m, 2m ...Every month, or a number of months
    bimonthlyEvery two months
    quarterly, 1q, 2q ...Every three months, a quarter, or a number of quarters
    semiannualEvery six months
    annual, yearly, 1y, 2y ...Every year, or a number of years
    biannual, biyearly, 2yEvery two-years
    -
    - -
    -
    -
    -

    - Copyright 2006-2009, P. Beckingham. All rights reserved. -

    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - -
    - -
    - - - - - - - diff --git a/html/sequence.html b/html/sequence.html deleted file mode 100644 index bed36eb1a..000000000 --- a/html/sequence.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - Task Usage - - - - - -
    - - - - - - -
    - - -
    -
    -
    -
    -

    ID Sequences

    -
    -

    - Some task commands require an ID to be specified. For example: -

    - -
    % task 3 done
    - -

    - This marks a single task as done. But if you wanted to mark - several tasks as done, you could use: -

    - -
    % task 3,4,5 done
    - -

    - Which would mark tasks 3, 4 and 5 as all done. In this example, - the three IDs are consecutive, which means you could also have - entered: -

    - -
    % task 3-5 done
    - -

    - Or in a more complex example: -

    - -
    % task 1,3-5,12 23-25 done
    - -

    - This would mark tasks 1, 3, 4, 5, 12, 23, 24 and 25 as done. - Note that this example uses two sequences, separated by a space. -

    - -

    - You must be careful though. Task tries very carefully to do - the right thing when it interprets the command line, but must - still impose some rules so that it can unambiguously read the - command. If you use one or more sequences, then they must - appear on the command line adjacent to each other. If they - are separated by something else, then task assumes the second - and subsequent set is not a sequence. Here is an example - of this: -

    - -
    % task 3 Order part number 4-123
    - -

    - Clearly the 4-123 is a part number, and not a sequence. - Task is being asked to modify the description of task 3 to be - "Order part number 4-123". Note that the ID is separated - from the part number by something other than a sequence. - Here is a bad example that task will misinterpret: -

    - -
    % task 3 4-123 is back-ordered, try again next week
    - -

    - The intent here is that task 3 have its description modified to be - "4-123 is back-ordered, try again next week", but will be - misinterpreted as tasks 3, 4, 5, 6 ... 123 will all be modified - to have the description "is back-ordered, try again next week". - The solution is to quote the whole description: -

    - -
    % task 3 "4-123 is back-ordered, try again next week"
    -
    - -
    -
    -
    -

    - Copyright 2006-2009, P. Beckingham. All rights reserved. -

    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - -
    - -
    - - - - - - - diff --git a/html/setup.html b/html/setup.html deleted file mode 100644 index dabe31a35..000000000 --- a/html/setup.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - Task Setup - - - - - -
    - - - - - - -
    - - -
    -
    -
    -
    -

    Quick Setup

    -
    -

    - Build the task program according to the directions in the INSTALL - file. This transcript illustrates a typical installation: -

    - -
    % ls
    -task-1.6.0.tar.gz
    -% gunzip task-1.6.0.tar.gz
    -% tar xf task-1.6.0.tar
    -% cd task-1.6.0
    -% ./configure
    -...
    -% make
    -...
    -% make install     # (may require sudo, depending on --prefix)
    - -

    - (For those of you using Cygwin, - you need to make sure you have the "gcc" and "make" packages - available, which are found in the "devel" category. For more - task features, also make sure you have "libncurses-devel" and - "lincurse8".) -

    - -

    - You need to make sure that the installed task program is in your - PATH environment variable. -

    - -

    - Task reads a configuration file - called .taskrc in your home - directory - and stores pending and completed tasks in in a directory - specified in the configuration file. -

    - -

    - The simplest way to get a configuration file and task directory is - to run task. On startup, task will check to see if it can find the - configuration file and task directory, and if not found, will ask - you whether it may create both. -

    - -
    % task version
    -
    -A configuration file could not be found in /Users/paul/.taskrc
    -
    -Would you like a sample .taskrc created, so task can proceed? (y/n) y
    -Done.
    -
    -[then task will show version information]
    -
    - -
    -
    -
    -

    - Copyright 2006-2009, P. Beckingham. All rights reserved. -

    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - -
    - -
    - - - - - - - diff --git a/html/shadow.html b/html/shadow.html deleted file mode 100644 index bb8ade27d..000000000 --- a/html/shadow.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - Task Shadow Files - - - - - -
    - - - - - - -
    - - -
    -
    -
    -
    -

    Task Shadow Files

    -
    -

    - A shadow file is a text file containing a copy of a task - report. It is automatically maintained by task whenever - something changes in the task database. -

    - -

    - This means there is always a current version of the task - report kept in a text file. Products such as - Samurize, - MkConsole, - or - GeekTool - can display this file on the computer desktop, so that it - is readily visible. -

    - -

    - To use a shadow file, edit your .taskrc configuration file, - and add three entries as shown: -

    - -
    shadow.file=/path/to/file
    -shadow.command=list pri:H
    -shadow.notify=on
    - -

    - In this example the shadow file contains a report equivalent - to running "task list pri:H". Note that the third entry - causes a message to be displayed whenever task updates the - shadow file. It is optional. -

    - -

    - You can use any task command that generates a report, and of - course, you can specify any file name, provided the directory - it resides in already exists. -

    -
    - -
    -
    -
    -

    - Copyright 2006-2009, P. Beckingham. All rights reserved. -

    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - -
    - -
    - - - - - - - diff --git a/html/shell.html b/html/shell.html deleted file mode 100644 index f52ffb118..000000000 --- a/html/shell.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - Interacting with the Shell - - - - - -
    - - - - - - -
    - - -
    -
    -
    -
    -

    Interacting with the Shell

    -
    -

    - Certain characters are interpreted by the shell. For example, the - "&". If you wish to include the & in a task description, - you need to escape it, so the shell doesn't interpret it. For - example: -

    - -
    % task add Buy bread & milk
    - -

    - This command is an error because of the &. The shell will - consider this to be two commands: -

    - -
    % task add Buy bread &
    -% milk
    - -

    - The shell treats the & character as an indicator that the - command is complete and should be run in the background. Then the - shell considers "milk" to be a command all by itself. Which it is - not. One way to get around this is to individually escape the & - character: -

    - -
    % task add Buy bread \& milk
    - -

    - Another is to quote the entire description, with either ' or " - characters: -

    - -
    % task add "Buy bread & milk"
    - -

    - Note that if an & character (or any other character that needs - to be escaped for the shell) appears in the - filter of a - custom report - then it does not need to be escaped, as it never gets processed - by the shell. In other words, shell escapes need only be used - when typing task commands at a prompt. -

    -
    - -
    -
    -
    -

    - Copyright 2006-2009, P. Beckingham. All rights reserved. -

    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - -
    - -
    - - - - - - - diff --git a/html/simple.html b/html/simple.html deleted file mode 100644 index 6cbe45dde..000000000 --- a/html/simple.html +++ /dev/null @@ -1,356 +0,0 @@ - - - - Simple Usage - - - - - -
    - - - - - - -
    - - -
    -
    -
    -
    -

    Simple Usage

    -
    -

    - Let us begin by adding some tasks: -

    - -
    % task add Book plane ticket
    -% task add Rent a tux
    -% task add Reserve a rental car
    -% task add Reserve a hotel room
    - -

    - That's it. You'll notice immediately that task has a very - minimalist interface. Let us take a look at those tasks: -

    - -
    % task ls
    -
    -ID Project Pri Description
    - 1             Book plane ticket
    - 2             Rent a tux
    - 3             Reserve a rental car
    - 4             Send John a birthday card
    - -

    - The 'ls' command provides the most minimal list of tasks. Each - task has been given an id number, and you can see that there are no - projects or priorities assigned. Wait a minute - I own a tux, I - don't need to rent one. Let us delete task 2: -

    - -
    % task 2 delete
    -Permanently delete task? (y/n) y
    - -

    - Task wants you to confirm deletions. To remove the confirmation, - edit your .taskrc file and change the line: -

    - -
    confirmation=yes
    - -

    - to have a value of "no". -

    - -

    - While the use of projects and priorities are not essential to - benefitting from task, they can be very useful when the list of - tasks grows large. Let's assign a project to these tasks: -

    - -
    % task 1 project:Wedding
    -% task 3 project:Wedding
    -% task 4 project:Family
    -% task ls
    -
    -  ID Project Pri Description
    -   3 Family      Send John a birthday card
    -   2 Wedding     Reserve a rental car
    -   1 Wedding     Book plane ticket
    - -

    - Notice that the id numbers have changed. When tasks get deleted, - or have their attributes changed (project, for example), the ids are - prone to change. But the id numbers will remain valid until the - next 'ls' command is run. You should only use the ids from the most - recent 'ls' command. The ids change, because task is always trying - to use small numbers so that it is easy for you to enter them - correctly. Now that projects are assigned, we can look at just the - Wedding project tasks: -

    - -

    - Subprojects are supported. If you have a project "Wedding", you can - specify that a task is a subproject "Transport" of "Wedding" by - assigning the project "Wedding.Transport". Let's do this: -

    - -
    % task 2 project:Wedding.Transport
    -% task ls
    -
    -ID Project           Pri Description
    - 3 Family                Send John a birthday card
    - 2 Wedding.Transport     Reserve a rental car
    - 1 Wedding               Book plane ticket
    - -

    - Task matches the leftmost part of the project when searching, so - projects may be abbreviated: -

    - -
    % task ls project:Wedding.Tra
    -
    -ID Project           Pri Description
    - 2 Wedding.Transport     Reserve a rental car
    - -

    - This way of matching projects can be used to see all tasks under - the "Wedding" project and all subprojects: -

    - -
    % task ls project:Wedding
    -
    -ID Project           Pri Description
    - 2 Wedding.Transport     Reserve a rental car
    - 1 Wedding               Book plane ticket
    - -

    - Let's reassign 2 back to the "Wedding" project: -

    - -
    % task 2 project:Wedding
    - -

    - Now that projects are assigned, we can look at just the - Wedding project tasks: -

    - -
    % task ls project:Wedding
    -
    -ID Project Pri Description
    - 1 Wedding     Book plane ticket
    - 2 Wedding     Reserve a rental car
    - -

    - Any command arguments after the 'ls' are used for filtering the - output. We could also have requested: -

    - -
    % task ls ticket plane
    -
    -ID Project Pri Description
    - 1 Wedding     Book plane ticket
    - -

    - Now let's prioritize. Priorities can be H, M or L (High, Medium, - Low). -

    - -
    % task ls
    -
    -ID Project Pri Description
    - 3 Family      Send John a birthday card
    - 2 Wedding     Reserve a rental car
    - 1 Wedding     Book plane ticket
    -
    -% task 1 priority:H
    -% task 2 prior:M
    -% task 3 pr:H
    -Ambiguous attribute 'pr' - could be either of project, priority
    -% task 3 pri:H
    -% task ls
    -
    -ID Project Pri Description
    - 3 Family  H   Send John a birthday card
    - 1 Wedding H   Book plane ticket
    - 2 Wedding M   Reserve a rental car
    - -

    - Notice that task supports the abbreviation of words such as - priority, project. Priority can be abbreviated to pri, but not pr, - because it is ambiguous. Now that tasks have been prioritized, you - can see that the tasks are being sorted by priority, with the - highest priority tasks at the top. -

    - -

    - These attributes can all be provided when the task is added, instead - of applying them afterwards, as shown. The following command shows - how to set all the attributes at once: -

    - -
    % task add project:Wedding priority:H Book plane ticket
    - -

    - The 'ls' command provides the least information for each task. The - 'list' command provides more: -

    - -
    % task list
    -
    -ID Project Pri Due Active Age    Description
    - 3 Family  H              4 mins Send John a birthday card
    - 1 Wedding H              5 mins Book plane ticket
    - 2 Wedding M              5 mins Reserve a rental car
    - -

    - Notice that a task can have a due date, and can be active. The - task lists are sorted by due date, then priority. Let's add due - dates: -

    - -
    % task 3 due:6/25/2008
    -% task 1 due:7/31/2008
    -% task list
    -
    -ID Project Pri Due       Active Age    Description
    - 3 Family  H   6/25/2008        6 mins Send John a birthday card
    - 1 Wedding H   7/31/2008        7 mins Book plane ticket
    - 2 Wedding M                    7 mins Reserve a rental car
    - -

    - If today's date is 6/23/2008, then task 3 is due in 2 days. It will - be colored yellow if your terminal supports color. To change this - color, edit your .taskrc file, and change the line to one of these - alternatives: -

    - -
    color.due=red
    -color.due=on_blue
    -color.due=red on_blue
    -color.due=bold_red on_blue
    - -

    - Where color is one of the following: -

    - -
    black
    -blue
    -red
    -green
    -cyan
    -magenta
    -yellow
    -white
    - -

    - All colors are specified in this way. Take a look in .taskrc for - all the other color rules that you control. -

    - -

    - Tagging tasks is a good way to group them, aside from specifying a - project. To add a tag to a task: -

    - -
    % task <id> +tag
    - -

    - The plus sign indicates that this is a tag. Any number of tags may - be applied to a task, and then used for searching. Tags are just - single words that are labels. -

    - -
    % task list
    -
    -ID Project Pri Due       Active Age    Description
    - 3 Family  H   6/25/2008        8 mins Send John a birthday card
    - 1 Wedding H   7/31/2008        9 mins Book plane ticket
    - 2 Wedding M                    9 mins Reserve a rental car
    -
    -% task 1 +phone
    -% task 2 +phone
    -% task 3 +shopping
    -% task 3 +john
    -
    -% task list +phone
    -
    -ID Project Pri Due       Active Age    Description
    - 1 Wedding H   7/31/2008        9 mins Book plane ticket
    - 2 Wedding M                    9 mins Reserve a rental car
    - -

    - To remove a tag from a task, use the minus sign: -

    - -
    % task 3 -john
    -
    - -
    -
    -
    -

    - Copyright 2006-2009, P. Beckingham. All rights reserved. -

    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - -
    - -
    - - - - - - - diff --git a/html/tab_completion.html b/html/tab_completion.html deleted file mode 100644 index a6b918e15..000000000 --- a/html/tab_completion.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - Tab Completion - - - - - -
    - - - - - - -
    - - -
    -
    -
    -
    -

    Tab Completion

    -
    -

    - There is a Bash tab completion script distributed with task, - called task_completion.sh. -

    - -

    - To install it, copy it to your - - /etc/bash_completion.d - - directory (in case you want to have it available system-wide) - and then - -

    source /etc/bash_completion
    - - or source it from your home directory's bashrc files. -

    -
    - -
    -
    -
    -

    - Copyright 2006-2009, P. Beckingham. All rights reserved. -

    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - -
    - -
    - - - - - - - diff --git a/html/task.css b/html/task.css deleted file mode 100644 index e316b3a7c..000000000 --- a/html/task.css +++ /dev/null @@ -1,126 +0,0 @@ -body { - text-align: center; - margin: 0; padding: 1em; -} - -#container { - width: 740px; - text-align: left; - margin: 0 auto; padding: 0; -} - -#header { - height: 60px; - margin: 0 0 15px; padding: 0; -} - -#page {} - -#content { - width: 500px; -} - -#header a:link, -#header a:visited { - color:#000; - text-decoration: none; -} - -#header h1 { - font: bold 400% georgia, serif; - letter-spacing: -1px; - margin: 0; - float: left; -} - -#header h2 { - font: normal 12px verdana, arial, sans-serif; - margin: 2.5em 0 0 0.8em; - float: left; -} - -#content {} - -#content h1, -#content h2, -#content h3, -#content h4, -#content h5 { - font-family: "lucidamac bold", "lucida grande", arial, sans-serif; - letter-spacing: -1px; -} - -#content h1 { - font-size: 24px; -} - -#content h2 { - font-size: 22px; - border-bottom: 1px dotted #000; -} - -#content h3 { - font-size: 20px; - border-bottom: 1px dotted #bbb; -} - -#content h4 { - font-size: 18px; - border-bottom: 1px dotted #bbb; -} - -#content h5 { - font-size: 18px; - background: #ffd; - border-bottom: 1px dotted #bbb; -} - -#content p { - line-height: 15px; -} - -#content ul, -#content ol { -} - -#content code { - font: normal 12px "bitstream vera sans mono", monaco "lucida console", "courier new", courier, serif; -} - -#content pre { - color: #63FF00; - background: #000; - overflow: auto; - font: normal 12px "bitstream vera sans mono", monaco "lucida console", "courier new", courier, serif; - margin: 0.9em 0; padding: 8px; -} - -dt { - font: bold 14px "lucida grande", verdana, arial, helvetica, sans-serif; -} - -dd { -} - -body { - font: normal 12px "lucida grande", verdana, arial, helvetica, sans-serif; -} - -.small { - font: normal 10px verdana, arial, sans-serif; -} - -.table_h { - background-color: #e0e0e0; -} - -.table_d { - background-color: #f7f7f7; -} -input, -textarea { font: normal 12px "bitstream vera sans", verdana, sans-serif; } - -abbr { border: none; } -cite { font-style: normal; } -a img { border: none; padding: 0; margin: 0; } - diff --git a/html/task.html b/html/task.html deleted file mode 100644 index 922edc11c..000000000 --- a/html/task.html +++ /dev/null @@ -1,248 +0,0 @@ - - - - Latest Release - - - - - -
    - - - - - - -
    - - -
    -
    -
    -
    -

    Task

    -

    - Task is an open source, command-line, TODO list manager. -

    - -

    - Here you will find information on how to acquire, build, configure, - use and become proficient with the task program. -

    - - - -

    - More documents are being written, and will be added here. -

    - -

    - Alternatively, watch the - task movie - which illustrates many of task's features. -

    - -

    - For the latest news, discussion of proposed task features, and - somewhere to voice your opinions, join us at - http://groups.google.com/group/taskprogram. - - - - - - - - - - - - - - - - -
    - Google Groups -
    - Subscribe to taskprogram -
    - Email: - - -
    - Visit this group -
    -

    - -
    -

    Get the Latest Stable Release

    - -
    - - - - - - - - - - - - -
    - Ready compiled install-packages for several Linux distributions can be found on the - Download-page. -
    -
    -
    Sourcetask-1.8.0.tar.gz
    Git repositoryhttp://github.com/pbeckingham/task
    - -

    New in version 1.8.0 (?)

    -
      -
    • Added zsh tab completion script (thanks to P.C. Shyamshankar). -
    • Fixed bug that cause the _forcecolor configuration variable to be - considered obsolete (thank to Bruce Dillahunty). -
    • Fixed documentation errors (thanks to Thomas@BIC). -
    • The 'weekstart' configuration variable now controls the 'calendar' - report (thanks to Federico Hernandez). -
    • The 'displayweeknumber' configuration variable now controls the display - of week number in the 'calendar' report (thanks to Federico Hernandez). -
    • Supports '--' argument to indicate that all subsequence arguments are - part of the description, despite what they otherwise might mean. -
    • Removed support for the obsolete task file format 1 (never released). -
    • Fixed bug that allowed blank annotations to be added (thanks to Bruce - Dillahunty). -
    • Supports negative tag filters, so that (task list +foo -bar) now filters - tasks that have the "foo" tag, but do not have the "bar" tag (thanks to - Chris Pride). -
    - -

    - (Find out what was new in prior versions) -

    - -

    Troubleshooting

    -

    - Task has been built from source and tested in the following environments: -

    - -

    -

      -
    • OS X 10.4 Tiger -
    • OS X 10.5 Leopard -
    • Fedora Core 8 -
    • Fedora Core 9 -
    • Fedora Core 10 -
    • Ubuntu 7 Feisty Fawn -
    • Ubuntu 8 Hardy Heron -
    • Ubuntu 8.10 Intrepid Ibex -
    • Ubuntu 9.04 Jaunty Jackalope -
    • Arch Linux -
    • Slackware 12.2 -
    • Solaris 8 -
    • Solaris 10 -
    • Cygwin 1.5.25-14 -
    -

    - -

    - If you have difficulties building task, have found a bug, have a - suggestion for improvement, or a feature request, please send mail to - task@beckingham.net, or - post a message to the - taskprogram@googlegroups.com. -

    - -

    - Take a look at the FAQ - for tips and workarounds to problems. -

    - -
    - -
    -
    -
    -

    - Copyright 2006-2009, P. Beckingham. All rights reserved. -

    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - -
    - -
    - - - - - - - diff --git a/html/versions.html b/html/versions.html deleted file mode 100644 index 7488e7e6d..000000000 --- a/html/versions.html +++ /dev/null @@ -1,358 +0,0 @@ - - - - Task Prior Versions - - - - - -
    - - - - - - -
    - - -
    -
    -
    -
    -

    Task Prior Versions

    -
    - -
    -

    New in version 1.7.0 (5/14/2009)

    -
      -
    • Improved the errors when parsing a corrupt or unrecognized pending.data - or completed.data file (thanks to T. Charles Yun). -
    • Added details to the "info" report about recurring tasks (thanks to T. - Charles Yun). -
    • Now writes a sample "defaultwidth" configuration variable to the default - .taskrc file (thanks to T. Charles Yun). -
    • Task allows commands that require an ID to now be given a sequence, which - is a set of IDs. This allows commands like "task delete 1 2 5-10,12". -
    • Fixed bug in the ghistory report, which caused it to only show a new - month if a task was added during that month. -
    • New command "duplicate" which allows an existing task to be duplicated, - and also have modifications applied (thanks to David J Patrick). -
    • The "append", and "done" commands now allow modifications to be applied - to the task(s) (thanks to David J Patrick). -
    • Improved word wrapping in various output. -
    • Fixed bug that added an extra line between header and graph in the - ghistory report. -
    • Added simple 'taskprogram' mailing list subscribe form to the web site. -
    • For custom reports that define a "limit" to the number of rows of output - such as "oldest" and "newest", task allows an override value. For - example "task oldest 5" will display the 5 oldest tasks. -
    • Modified the "stats" report so that it has the same aesthetics as the - other reports. -
    • New "timesheet" command displays tasks completed and started, per week, - and can display multiple weeks. -
    • New tab completion script, task_completion.sh, for bash users, is installed - to /usr/local/share/task (thanks to Federico Hernandez). -
    • Applied patch to allow task to build on Arch Linux (thanks to Johan Friis). -
    • Applied patch to fix a UUID bug on Solaris 8 (thanks to Steven de Brouwer). -
    • The task man page is now installed. Try "man task" (thanks to Federico - Hernandez and P.C. Shyamshankar). -
    • Fixed bug that causes task to create a default .task directory, even if - data.location specified otherwise (thanks to Federico Hernandez). -
    • New "edit" command that fires up a text editor (uses 'editor' configuration - variable, $VISUAL or $EDITOR environment variable) and allows direct - editing of all editable task details. -
    - -

    New in version 1.6.1 (4/24/2009)

    -
      -
    • Fixed bug that caused new, first-time .taskrc files to be written without - including the custom report labels (thanks to P.C. Shyamshankar). -
    - -

    New in version 1.6.0 (4/13/2009)

    -
      -
    • Added support for new "append" command that adds more description text to - an existing task. -
    • Added support for the "weekdays" recurrence, which means a task can recur - five times a week, and not on weekends (thanks to Chris Pride). -
    • UTF8 text is now supported in task project names, tags and descriptions. -
    • Fixed bug that caused the y/n confirmation on task deletion to ignore the - Enter key and fail to re-prompt (thanks to Bruce Dillahunty). -
    • When the "echo.command" configuration variable is set to "yes", it causes - commands that modify tasks to display which task was affected (thanks to - Bruce Dillahunty). -
    • A task can now be annotated with the command "task annotate ...", and - a timestamped annotation will appear in reports. -
    • A 'description_only' column is now available for use in custom reports, - and it excludes annotations. -
    • A task can now be upgraded to a recurring task by adding a recurrence - frequency, a due date, and an optional until date. -
    • When a recurring task is modified, all other instances of the recurring - task are also modified. -
    • Custom reports now support user-specified column labels (thanks to T. - Charles Yun). -
    • Task can now import tasks from a variety of data formats, including task - export files from versions 1.4.3 and earlier, versions 1.5.0 and later, - todo.sh 2.x, CSV, plain text and task command line. See online docs for - full details. -
    • Export was including 'id' in the column header even though it was not - included in the data. -
    • The task file format has changed slightly. Please back up your task - data files before upgrading to 1.6.0. -
    • Added new column 'recurrence_indicator' that displays an 'R' if the task - is a recurring task. This column can be added to any custom report. -
    • Added new column 'tag_indicator' that displays a '+' if the task - has any tags. This column can be added to any custom report. -
    • Fixed bug where sometimes a task description was concatenated oddly if - there was a colon somewhere in the description. -
    • Fixed bug that caused recurring annual tasks to exhibit a creeping due - date, because of an assumption of 365 days per year, which failed to - consider leap years (thanks to T. Charles Yun). -
    • Annotations can now be modified with the substitution commands /from/to/. -
    • Substitutions can now be made global with /from/to/g and all occurrences - of "from" will be replaced with "to". -
    - -

    New in version 1.5.0 (3/15/2009)

    -
      -
    • Removed deprecated TUTORIAL file. -
    • Removed support for the "showage" configuration variable. -
    • "task stop" can remove the start time from a started task. -
    • "task ghistory" now displays a differently aligned graph, allowing - easier comparison by month of tasks added versus completed and deleted. -
    • "task version" command now reports unrecognized configuration variables, - which may be spelling mistakes or deprecated variables. -
    • "configure --enable-debug" now supported to suppress compiler optimization - to allow debugging. -
    • Allow lower case priorities, and automatically upper case them. -
    • Added support for "due" configuration variable which defines the number - of days in the future when a task is considered due. -
    • Added support for custom reports, comprised of a set of column names and - sort order, with optional filtering in the configuration file. This - means user-defined reports can be written, and the reports currently - in the configuration file can be renamed. Several of task's built in - reports have been converted to user-defined reports. -
    • New online documentation for custom reports. -
    • New algorithm for determining when the "nag" message is displayed. -
    • Fixed bug where task hangs with a certain combination of recurring tasks - and shadow files. -
    • Fixed bug with the task sort algorithm, which led to an unstable sequence - when there were only a handful of tasks. -
    • Performance enhanced by eliminating unnecessary sorting. -
    • Task now has a large (and growing) test suite and bug regression tests - to help ensure higher quality releases. -
    • Fixed bug that caused large performance hit during table rendering. -
    • Fixed bug that concatenated a modified description without spaces. -
    • Added new column 'recur' that displays the recurrence period of any - recurring tasks. This column can be added to any custom report. -
    • Added support for "color.recurring" configuration variable which - specifies the color of recurring tasks. -
    • Added support for "locking" configuration variable that controls whether - file locking is used. -
    • Task export feature now includes recurrence information, removes nested - quotes, and limits output to pending tasks. -
    • Task no longer includes deleted tasks in the summary report (thanks to - Benjamin Tegarden). -
    • Fixed bug that prevented the summary report from properly reporting - recently completed tasks. -
    - -

    New in version 1.4.3 (11/1/2008)

    -
      -
    • Fixed misleading task count at bottom of "info" report. -
    • Added support for a shadow file that contains a plain text task report, - with the "shadow.file" and "shadow.command" configuration variables. - The shadow file is automatically updated whenever the task database - changes. Useful for integrating with "Samurize". -
    • Task now displays a message whenever a shadow file is updated, if the - "shadow.notify" configuration variable is set "on". -
    • Fixed bug whereby adding a task with a \n, \r or \f did not fail properly. -
    • Removed "task usage" command. -
    • Added documentation for Shadow files. -
    • Added documentation for task filters. -
    - -

    New in version 1.4.2 (9/18/2008)

    -
      -
    • "task undo" can now retract a "task done" command, provided no - reports have been run. -
    • Task now correctly sorts on entire strings, instead of just the - first character (thanks to Andy Lester). -
    • Task now uses dashes (-----) to underline column headings when - color is disabled (thanks to Vincent Fleuranceau). -
    • Task now allows mixed case attribute names (pri:, PRI:, Pri: ...) - and commands (add, ADD, Add ...) (thanks to Vincent Fleuranceau). -
    • Task now supports a default project and priority for new tasks, via - the new "default.project" and "default.priority" configuration variables - (thanks to Vincent Fleuranceau). -
    • Task supports improved word-wrapping to the terminal width. -
    • Task now supports "default.command" configuration variable (for example - it could contain "list due:tomorrow") which is the command that is run - whenever task is invoked with no arguments. -
    • Task supports modifying the existing description of a task, with the - following syntax: task <id> "new description ...". -
    • Fixed bug so that relative dates in filters (task list due:eom, - task list due:tomorrow, task list due:23rd ...) are now properly - supported. -
    • Fixed bug so that source now properly includes <string.h> in - order to build clean using gcc 4.3 (thanks to H. İbrahim Güngör) -
    - -

    New in version 1.4.1 (7/18/2008)

    -
      -
    • Fixed bug: Descriptions could not be altered with "task 123 New description" -
    • Tweak: For "task calendar" month names are now centered over the month -
    • Removed TUTORIAL file contents in favor of online version -
    • New Mac Intel-only Leopard (10.5) binary package -
    - -

    New in version 1.4.0 (7/10/2008)

    -
      -
    • Added new recurring tasks feature -
    • Added "task undelete" feature to restore a (very) recently deleted - task -
    • Added averages to the "task history" report -
    • Added bar chart history report "task ghistory" -
    • Added support for rc:<file> to allow override of the default - ~/.taskrc file -
    • Added support for relative due: dates, such as "tomorrow", "friday", - "23rd", "eom" -
    • Added support for task filtering on all reports -
    • Automatically shuts off color, ncurses when output is not to a tty -
    • Added support for the ~ character in .taskrc data.location, for flexibility -
    • Allows colons on the description, provided what is to the left of the colon - is not a standard attribute name -
    • Fixed bug where Esc[0m sequences were being emitted for no good reason -
    • Fixed bug where table headers are underlined when color is turned off -
    • Fixed bug where adding a blank priority resulted in an assigned garbage value -
    • Fixed bug parsing date "07/08/2008" when using dateformat "m/d/Y" -
    - -

    New in version 1.3.1

    -
      -
    • New configuration variable "defaultwidth" determines the width - of windows in the absense of ncurses support -
    • Fixed bug where "showage" configuration variable was not being - oberved by the "task long" report -
    • Fixed bug causing segmentation faults (mostly for Ubuntu users) - when various commands are run -
    • Fixed bug so that task now will recreate a missing ~/.taskrc file, - OR a missing ~/.task directory -
    - -

    New in version 1.3.0

    -
      -
    • "task calendar" now displays multiple months per line, adjustable - by the "monthsperline" configuration variable. Feature added by - Damian Glenny -
    • Displays shorter message when a command is entered incorrectly, - and the full usage for "task help" -
    • "task export" can now filter tasks like the reports -
    • "task oldest" shows the oldest tasks -
    • "task newest" shows the newest tasks -
    • Fixed bug where task generates a segmentation fault for several - commands, when no "dateformat" configuration variable was present -
    • Fixed bug whereby if you have more than one task with a due date, - 7 days gets added to the entry date of task 2..n -
    • Fixed bug whereby "1 wks" was being improperly pluralized -
    - -

    New in version 1.2.0

    -
      -
    • Subprojects supported - please see documentation below, or TUTORIAL - file -
    • "dateformat" configuration variable now properly used to parse as - well as render dates -
    • "task list x" now performs a caseless comparison between "x" and - the task description -
    • "showage" configuration variable determines whether the "Age" column - should appear on the "task list" and "task next" reports -
    • Improvements to the TUTORIAL file and this page -
    - -

    New in version 1.1.0

    -
      -
    • "blanklines" configuration variable to stop displaying unnecessary - white space and thus work better on small-screen devices -
    • "dateformat" configuration now determines how dates are formatted -
    • Better formatting of "task tags" output -
    • This home page set up, with TUTORIAL -
    • Added tags to the "task long" report -
    - -

    New in version 1.0.1

    -
      -
    • Fixed bug where the UUID generator not properly terminating strings -
    • Fixed bug where srandom/srand not called prior to custom UUID generation -
    - -

    Version 1.0.0

    - Task 1.0.0 was the first publicly available version of task. - -
    - -
    -
    -
    -

    - Copyright 2006-2009, P. Beckingham. All rights reserved. -

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - -
    - -
    - - - - - - -