Merge branch 'switch' into 1.8.0
This commit is contained in:
@@ -1,131 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>30-Second Tutorial</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="container">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<div id="toolbar">
|
||||
<a href="task.html">Home</a>
|
||||
<a href="setup.html">Setup</a>
|
||||
<a href="30second.html">30-second Tutorial</a>
|
||||
<a href="simple.html">Simple</a>
|
||||
<a href="advanced.html">Advanced</a>
|
||||
<a href="shell.html">Shell</a>
|
||||
<a href="config.html">Configuration</a>
|
||||
<a href="color.html">Colors</a>
|
||||
<a href="recur.html">Recurrence</a>
|
||||
<a href="date.html">Date Handling</a>
|
||||
<a href="faq.html">FAQ</a>
|
||||
<a href="versions.html">Old Versions</a>
|
||||
<a href="links.html">Task on the Web</a>
|
||||
<a href="download.html">Download</a>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<h2 class="title"><a name="simple">30-second Tutorial</a></h2>
|
||||
<div class="content">
|
||||
<p>
|
||||
For the excessively lazy.
|
||||
Add two tasks:
|
||||
</p>
|
||||
|
||||
<pre><code>% task add Read task documents later
|
||||
% task add priority:H Pay bills</code></pre>
|
||||
|
||||
<p>
|
||||
Easy. See that second one has a High priority? Now let's look at those tasks:
|
||||
</p>
|
||||
|
||||
<pre><code>% task ls
|
||||
|
||||
ID Project Pri Description
|
||||
2 H Pay bills
|
||||
1 Read task documents later</code></pre>
|
||||
|
||||
<p>
|
||||
They are ordered by priority. Let's mark number 2 as done:
|
||||
</p>
|
||||
|
||||
<pre><code>% task 2 done
|
||||
% task ls
|
||||
|
||||
ID Project Pri Description
|
||||
1 Read task documents later</code></pre>
|
||||
|
||||
<p>
|
||||
Gone. Now let's delete that remaining task, because, well,
|
||||
why bother now we are already using task:
|
||||
</p>
|
||||
|
||||
<pre><code>% task delete 1
|
||||
% task ls
|
||||
No matches</code></pre>
|
||||
|
||||
<p>
|
||||
Easy. But now consider checking out what task can really do...
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
<div class="content">
|
||||
<p>
|
||||
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td align="right" valign="top" width="200px">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<script type="text/javascript"><!--
|
||||
google_ad_client = "pub-9709799404235424";
|
||||
/* Task Main */
|
||||
google_ad_slot = "8660617875";
|
||||
google_ad_width = 120;
|
||||
google_ad_height = 600;
|
||||
//-->
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||
</script>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||
pageTracker._initData();
|
||||
pageTracker._trackPageview();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,554 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Advanced Usage</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="container">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<div id="toolbar">
|
||||
<a href="task.html">Home</a>
|
||||
<a href="setup.html">Setup</a>
|
||||
<a href="30second.html">30-second Tutorial</a>
|
||||
<a href="simple.html">Simple</a>
|
||||
<a href="advanced.html">Advanced</a>
|
||||
<a href="shell.html">Shell</a>
|
||||
<a href="config.html">Configuration</a>
|
||||
<a href="color.html">Colors</a>
|
||||
<a href="recur.html">Recurrence</a>
|
||||
<a href="date.html">Date Handling</a>
|
||||
<a href="faq.html">FAQ</a>
|
||||
<a href="versions.html">Old Versions</a>
|
||||
<a href="links.html">Task on the Web</a>
|
||||
<a href="download.html">Download</a>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<h2 class="title"><a name="advanced">Advanced Usage</a></h2>
|
||||
<div class="content">
|
||||
<p>
|
||||
Here are the other commands, in some detail.
|
||||
</p>
|
||||
|
||||
<strong>% task</strong>
|
||||
<p>
|
||||
With no arguments, this command will generate a help message that
|
||||
lists all these commands.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
However, if the following configuration variable is specified:
|
||||
</p>
|
||||
|
||||
<pre><code>default.command=list pri:H</code></pre>
|
||||
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre><code>% task
|
||||
[task list project:foo]
|
||||
|
||||
ID Project Pri Description
|
||||
1 foo H Design the thing
|
||||
2 foo Build the thing</code></pre>
|
||||
|
||||
<strong>% task projects</strong>
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre><code>% task projects
|
||||
|
||||
Project Tasks
|
||||
Errands 1
|
||||
Birthdays 3
|
||||
Car 2</code></pre>
|
||||
|
||||
|
||||
<strong>% task summary</strong>
|
||||
<p>
|
||||
This report lists all the projects and a summary of their task
|
||||
status.
|
||||
</p>
|
||||
|
||||
<pre><code>% 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</code></pre>
|
||||
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<strong>% task <id> append ...</strong>
|
||||
<p>
|
||||
Appends the additional description to an existing task.
|
||||
</p>
|
||||
|
||||
<strong>% task annotate <id> additional note...</strong>
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre><code>% 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</code></pre>
|
||||
<p>
|
||||
The date of the annotation uses the "dateformat" configuration
|
||||
variable.
|
||||
</p>
|
||||
|
||||
<strong>% task duplicate 1 /foo/bar/g +tag priority:H</strong>
|
||||
<p>
|
||||
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".
|
||||
</p>
|
||||
|
||||
<strong>% task delete <id></strong>
|
||||
<p>
|
||||
There are two ways of getting rid of tasks - mark them as done, or
|
||||
delete them.
|
||||
</p>
|
||||
|
||||
<strong>% task undelete <id></strong>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<strong>% task done <id></strong>
|
||||
<p>
|
||||
This is how a task is marked as done.
|
||||
</p>
|
||||
|
||||
<strong>% task undo <id></strong>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<strong>% task list ...</strong>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<strong>% task long ...</strong>
|
||||
<p>
|
||||
The long report will show the entry date and start date of a task,
|
||||
in addition to the columns that the "task list" shows.
|
||||
</p>
|
||||
|
||||
<strong>% task start <id></strong>
|
||||
<p>
|
||||
This marks a task as started (and therefore active), which is shown
|
||||
in the "list" report:
|
||||
</p>
|
||||
|
||||
<pre><code>% 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
|
||||
...</code></pre>
|
||||
|
||||
<strong>% task active</strong>
|
||||
<p>
|
||||
Shows all active tasks, that is, the tasks for which the
|
||||
"task start ..." command was run, as shown above.
|
||||
</p>
|
||||
|
||||
<strong>% task stop <id></strong>
|
||||
<p>
|
||||
Marks a task as inactive, by removing the start time.
|
||||
</p>
|
||||
|
||||
<strong>% task overdue</strong>
|
||||
<p>
|
||||
Simply lists all the task that have a due date that is past, in
|
||||
"list" format.
|
||||
</p>
|
||||
|
||||
<strong>% task history</strong>
|
||||
<p>
|
||||
This report shows you an overview of how many tasks were added,
|
||||
completed and deleted, by month. It looks like this:
|
||||
</p>
|
||||
|
||||
<pre><code>% task history
|
||||
|
||||
Year Month Added Completed Deleted Net
|
||||
2008 March 21 16 0 5
|
||||
April 13 11 1 1
|
||||
May 8 14 3 -9</code></pre>
|
||||
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<strong>% task ghistory</strong>
|
||||
<p>
|
||||
The ghistory report is a "graphical" version of the history
|
||||
report. It shows a colored bar graph and legend.
|
||||
</p>
|
||||
|
||||
<strong>% task timesheet 2</strong>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
<p>
|
||||
By default, the report starts on a Monday. To override this
|
||||
value, add an entry to your .taskrc file like this:
|
||||
<pre><code>weekstart=Sunday</code></pre>
|
||||
</p>
|
||||
|
||||
<strong>% task calendar</strong>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<pre><code>% 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</code></pre>
|
||||
|
||||
<strong>% task next</strong>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If you wish to show a different number of tasks per project, modify
|
||||
the entry in .taskrc:
|
||||
</p>
|
||||
|
||||
<pre><code>next=2</code></pre>
|
||||
|
||||
<p>
|
||||
To be your preferred number.
|
||||
</p>
|
||||
|
||||
<strong>% task <id> ...</strong>
|
||||
<p>
|
||||
When a task id is specified, everything applies to just that task.
|
||||
Suppose we needed to correct a task:
|
||||
</p>
|
||||
|
||||
<pre><code>% 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
|
||||
...</code></pre>
|
||||
|
||||
<strong>% task oldest [limit]</strong>
|
||||
<p>
|
||||
Lists the oldest tasks. The number of tasks shown is set by
|
||||
the configuration variable:
|
||||
<pre><code>report.oldest.limit=10</code></pre>
|
||||
This value can be overridden at run time by specifying the
|
||||
number of tasks on the command line:
|
||||
<pre><code>task oldest 5</code></pre>
|
||||
</p>
|
||||
|
||||
<strong>% task newest [limit]</strong>
|
||||
<p>
|
||||
Lists the newest tasks. The number of tasks shown is set by
|
||||
the configuration variable:
|
||||
<pre><code>report.newest.limit=10</code></pre>
|
||||
This value can be overridden at run time by specifying the
|
||||
number of tasks on the command line:
|
||||
<pre><code>task newest 5</code></pre>
|
||||
</p>
|
||||
|
||||
<strong>% task <id> /from/to/</strong>
|
||||
<p>
|
||||
If a task has been entered with a typo, it can be easily corrected
|
||||
by this command. For example:
|
||||
</p>
|
||||
|
||||
<pre><code>% 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
|
||||
...</code></pre>
|
||||
|
||||
<p>
|
||||
This command makes a single correction to the first occurrence of
|
||||
"from" in a task description.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If a task is annotated, the annotation can also be modified using
|
||||
this command.
|
||||
</p>
|
||||
|
||||
<strong>% task <id> /from/to/g</strong>
|
||||
<p>
|
||||
The "g" modifier to the substitution command causes every occurrence
|
||||
of "from" to be replaced with "to", in both the description and any
|
||||
annotations.
|
||||
</p>
|
||||
|
||||
<strong>% task tags</strong>
|
||||
<p>
|
||||
This command will generate a list of all the tags that are currently
|
||||
in use by task.
|
||||
</p>
|
||||
|
||||
<strong>% task info <id></strong>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<strong>% task stats</strong>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<strong>% task completed</strong>
|
||||
<p>
|
||||
This generates a list of all tasks that have been completed, sorted
|
||||
by their completion date.
|
||||
</p>
|
||||
|
||||
<strong>% task export <file name></strong>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<strong>% task colors</strong>
|
||||
<p>
|
||||
This command displays all the colors that task supports.
|
||||
</p>
|
||||
|
||||
<strong>% task version</strong>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<strong>% task rc:<file> ...</strong>
|
||||
<p>
|
||||
By specifying rc:<file>, 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:
|
||||
</p>
|
||||
|
||||
<pre><code>% task list
|
||||
% task rc:~/.taskrc list</code></pre>
|
||||
|
||||
<p>
|
||||
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):
|
||||
</p>
|
||||
|
||||
<pre><code>% alias htask="task rc:/home/me/.taskrc_home"
|
||||
% alias wtask="task rc:/home/me/.taskrc_work"
|
||||
% htask list
|
||||
...
|
||||
% wtask list
|
||||
...</code></pre>
|
||||
|
||||
<strong>% task <id> "new description"</strong>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<strong>% task <id> edit</strong>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<strong>% task <id> fg:... bg:...</strong>
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre><code> 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</code></pre>
|
||||
|
||||
<p>
|
||||
Note that these are not just colors, but combinations of colors and
|
||||
attributes. Valid background colors are:
|
||||
</p>
|
||||
|
||||
<pre><code>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</code></pre>
|
||||
|
||||
<p>
|
||||
Note also that this capability does depend on whether your terminal
|
||||
program can display these colors.
|
||||
</p>
|
||||
|
||||
<strong>% task add project:Home -- pri:H +tag /from/to/</strong>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
<div class="content">
|
||||
<p>
|
||||
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td align="right" valign="top" width="200px">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<script type="text/javascript"><!--
|
||||
google_ad_client = "pub-9709799404235424";
|
||||
/* Task Main */
|
||||
google_ad_slot = "8660617875";
|
||||
google_ad_width = 120;
|
||||
google_ad_height = 600;
|
||||
//-->
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||
</script>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||
pageTracker._initData();
|
||||
pageTracker._trackPageview();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
128
html/color.html
128
html/color.html
@@ -1,128 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Color Usage</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="container">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<div id="toolbar">
|
||||
<a href="task.html">Home</a>
|
||||
<a href="setup.html">Setup</a>
|
||||
<a href="30second.html">30-second Tutorial</a>
|
||||
<a href="simple.html">Simple</a>
|
||||
<a href="advanced.html">Advanced</a>
|
||||
<a href="shell.html">Shell</a>
|
||||
<a href="config.html">Configuration</a>
|
||||
<a href="color.html">Colors</a>
|
||||
<a href="recur.html">Recurrence</a>
|
||||
<a href="date.html">Date Handling</a>
|
||||
<a href="faq.html">FAQ</a>
|
||||
<a href="versions.html">Old Versions</a>
|
||||
<a href="links.html">Task on the Web</a>
|
||||
<a href="download.html">Download</a>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<h2 class="title"><a name="color">Colors</a></h2>
|
||||
<div class="content">
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre><code> 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</code></pre>
|
||||
|
||||
<p>
|
||||
and the following are valid background colors:
|
||||
</p>
|
||||
|
||||
<pre><code>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</code></pre>
|
||||
|
||||
<p>
|
||||
Depending on your terminal color choices, task can display all
|
||||
the colors it supports with the command:
|
||||
</p>
|
||||
|
||||
<img src="images/color.png" />
|
||||
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
<div class="content">
|
||||
<p>
|
||||
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td align="right" valign="top" width="200px">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<script type="text/javascript"><!--
|
||||
google_ad_client = "pub-9709799404235424";
|
||||
/* Task Main */
|
||||
google_ad_slot = "8660617875";
|
||||
google_ad_width = 120;
|
||||
google_ad_height = 600;
|
||||
//-->
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||
</script>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||
pageTracker._initData();
|
||||
pageTracker._trackPageview();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
476
html/config.html
476
html/config.html
@@ -1,476 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Task Configuration</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="container">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<div id="toolbar">
|
||||
<a href="task.html">Home</a>
|
||||
<a href="setup.html">Setup</a>
|
||||
<a href="30second.html">30-second Tutorial</a>
|
||||
<a href="simple.html">Simple</a>
|
||||
<a href="advanced.html">Advanced</a>
|
||||
<a href="shell.html">Shell</a>
|
||||
<a href="config.html">Configuration</a>
|
||||
<a href="color.html">Colors</a>
|
||||
<a href="recur.html">Recurrence</a>
|
||||
<a href="date.html">Date Handling</a>
|
||||
<a href="faq.html">FAQ</a>
|
||||
<a href="versions.html">Old Versions</a>
|
||||
<a href="links.html">Task on the Web</a>
|
||||
<a href="download.html">Download</a>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<h2 class="title"><a name="config">Configuring Task</a></h2>
|
||||
<div class="content">
|
||||
<p>
|
||||
Task recognizes several entries in the .taskrc file for
|
||||
configuration purposes. Valid entries are of the form:
|
||||
</p>
|
||||
|
||||
<pre><code>name=value</code></pre>
|
||||
|
||||
<p>
|
||||
Valid examples are:
|
||||
</p>
|
||||
|
||||
<dt>data.location</dt>
|
||||
<dd>
|
||||
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
|
||||
</dd>
|
||||
|
||||
<dt>locale</dt>
|
||||
<dd>
|
||||
<p>
|
||||
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').
|
||||
</p>
|
||||
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
</dd>
|
||||
|
||||
<dt>confirmation</dt>
|
||||
<dd>
|
||||
May be "yes" or "no", and determines whether task will ask for
|
||||
confirmation before deleting a task.
|
||||
</dd>
|
||||
|
||||
<dt>echo.command</dt>
|
||||
<dd>
|
||||
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".
|
||||
</dd>
|
||||
|
||||
<dt>nag</dt>
|
||||
<dd>
|
||||
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:
|
||||
|
||||
<strong>Note: try to stick to high priority tasks. See "task next".</strong>
|
||||
</dd>
|
||||
|
||||
<dt>next</dt>
|
||||
<dd>
|
||||
Is a number, defaulting to 2, which is the number of tasks for
|
||||
each project that are shown in the "task next" command.
|
||||
</dd>
|
||||
|
||||
<dt>curses</dt>
|
||||
<dd>
|
||||
Determines whether task uses ncurses to establish the size of
|
||||
the window you are using, for text wrapping.
|
||||
</dd>
|
||||
|
||||
<dt>blanklines</dt>
|
||||
<dd>
|
||||
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.
|
||||
</dd>
|
||||
|
||||
<dt>dateformat</dt>
|
||||
<dd>
|
||||
<p>
|
||||
This is a string of characters that define how task formats dates.
|
||||
The default value is:
|
||||
</p>
|
||||
|
||||
<pre><code>m/d/Y</code></pre>
|
||||
|
||||
<p>
|
||||
which means dates look like:
|
||||
</p>
|
||||
|
||||
<pre><code>6/7/2008</code></pre>
|
||||
|
||||
<p>
|
||||
The string should contain the characters:
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th class="table_h">Character</th>
|
||||
<th class="table_h">Meaning</th>
|
||||
<th class="table_h">Example</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="table_d">m</td>
|
||||
<td class="table_d">minimal-digit month</td>
|
||||
<td class="table_d">1, 12</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="table_d">d</td>
|
||||
<td class="table_d">minimal-digit day</td>
|
||||
<td class="table_d">1, 30</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="table_d">y</td>
|
||||
<td class="table_d">two-digit year</td>
|
||||
<td class="table_d">08</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="table_d">M</td>
|
||||
<td class="table_d">two-digit month</td>
|
||||
<td class="table_d">01, 12</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="table_d">D</td>
|
||||
<td class="table_d">two-digit day</td>
|
||||
<td class="table_d">01, 30</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="table_d">Y</td>
|
||||
<td class="table_d">four-digit year</td>
|
||||
<td class="table_d">2008</td>
|
||||
</tr>
|
||||
</table>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The string may also contain other characters to act as spacers,
|
||||
or formatting. Other values could include (but are not limited to):
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<table>
|
||||
<tr>
|
||||
<th class="table_h">dateformat</td>
|
||||
<th class="table_h">How it looks</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="table_d">d/m/Y</td>
|
||||
<td class="table_d">7/6/2008</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="table_d">YMD</td>
|
||||
<td class="table_d">20080607</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="table_d">m-d-y</td>
|
||||
<td class="table_d">6-7-08</td>
|
||||
</tr>
|
||||
</table>
|
||||
</p>
|
||||
</dd>
|
||||
|
||||
<dt>monthsperline</dt>
|
||||
<dd>
|
||||
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.
|
||||
</dd>
|
||||
|
||||
<dt>weekstart</dt>
|
||||
<dd>
|
||||
The day of the week that represents the first day of the week.
|
||||
Defaults to "Monday".
|
||||
</dd>
|
||||
|
||||
<dt>displayweeknumber</dt>
|
||||
<dd>
|
||||
Determines whether or not the week number is displayed in the
|
||||
calendar report. Defaults to "yes".
|
||||
</dd>
|
||||
|
||||
<dt>editor</dt>
|
||||
<dd>
|
||||
Specifies which text editor you wish to use for when the
|
||||
|
||||
<pre><code>task edit <ID></code></pre>
|
||||
|
||||
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'.
|
||||
</dd>
|
||||
|
||||
<dt>defaultwidth</dt>
|
||||
<dd>
|
||||
The width of tables used when ncurses support is not available.
|
||||
Defaults to 80.
|
||||
</dd>
|
||||
|
||||
<dt>fontuderline</dt>
|
||||
<dd>
|
||||
May be "on" or "off". Determines if font underlines or ascii
|
||||
dashes should be used to underline headers.
|
||||
Defaults to on.
|
||||
</dd>
|
||||
|
||||
<dt>due</dt>
|
||||
<dd>
|
||||
|
||||
This is the number of days into the future that define when a
|
||||
task is considered due, and is colored accordingly.
|
||||
Defaults to 7.
|
||||
</dd>
|
||||
|
||||
<dt>color</dt>
|
||||
<dd>
|
||||
May be "on" or "off". Determines whether task uses color.
|
||||
When "off", task will use dashes (-----) to underline column
|
||||
headings.
|
||||
</dd>
|
||||
|
||||
<dt>
|
||||
color.overdue<br />
|
||||
color.due<br />
|
||||
color.pri.H<br />
|
||||
color.pri.M<br />
|
||||
color.pri.L<br />
|
||||
color.pri.none<br />
|
||||
color.active<br />
|
||||
color.tagged<br />
|
||||
color.recurring
|
||||
</dt>
|
||||
<dd>
|
||||
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:
|
||||
<br />
|
||||
<strong>bold_red on_bright_yellow</strong>
|
||||
</dd>
|
||||
|
||||
<dt>color.tag.X</dt>
|
||||
<dd>
|
||||
Colors any task that has the tag X.
|
||||
</dd>
|
||||
|
||||
<dt>color.project.X</dt>
|
||||
<dd>
|
||||
Colors any task assigned to project X.
|
||||
</dd>
|
||||
|
||||
<dt>color.keyword.X</dt>
|
||||
<dd>
|
||||
Colors any task where the description contains X.
|
||||
</dd>
|
||||
|
||||
<dt>default.project</dt>
|
||||
<dd>
|
||||
Provides a default project name for the "task add ..." command.
|
||||
</dd>
|
||||
|
||||
<dt>default.priority</dt>
|
||||
<dd>
|
||||
Provides a default priority for the "task add ..." command.
|
||||
</dd>
|
||||
|
||||
<dt>default.command</dt>
|
||||
<dd>
|
||||
<p>
|
||||
Provides a default command that is run every time task is
|
||||
invoked with no arguments. For example, if set to:
|
||||
</p>
|
||||
|
||||
<pre><code>default.command=list project:foo</code></pre>
|
||||
|
||||
<p>
|
||||
Then task will run the "list project:foo" command if no
|
||||
command is specified. This means that by merely typing:
|
||||
</p>
|
||||
|
||||
<pre><code>% task
|
||||
[task list project:foo]
|
||||
|
||||
ID Project Pri Description
|
||||
1 foo H Design the thing
|
||||
2 foo Build the thing</code></pre>
|
||||
|
||||
<p>
|
||||
Note that the value of this variable is simply the command
|
||||
line that you would ordinarily type, but without the
|
||||
preceding "task" program name.
|
||||
</p>
|
||||
</dd>
|
||||
|
||||
<dt>shadow.file</dt>
|
||||
<dd>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
This feature can be useful in maintaining a current file for
|
||||
use by the "Samurize" program.
|
||||
</p>
|
||||
</dd>
|
||||
|
||||
<dt>shadow.command</dt>
|
||||
<dd>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If this command is not specified, task will use the default.command
|
||||
value instead. If that is not specified, the command "list" is used.
|
||||
</p>
|
||||
</dd>
|
||||
|
||||
<dt>shadow.notify</dt>
|
||||
<dd>
|
||||
When this value is set to "on", task will display a message
|
||||
whenever the shadow file is updated by some task command.
|
||||
</dd>
|
||||
|
||||
<dt>locking</dt>
|
||||
<dd>
|
||||
<p>
|
||||
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".
|
||||
</p>
|
||||
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
</dd>
|
||||
|
||||
<dt>import.synonym.id</dt>
|
||||
<dt>import.synonym.uuid</dt>
|
||||
<dt>import.synonym.status</dt>
|
||||
<dt>import.synonym.tags</dt>
|
||||
<dt>import.synonym.entry</dt>
|
||||
<dt>import.synonym.start</dt>
|
||||
<dt>import.synonym.due</dt>
|
||||
<dt>import.synonym.recur</dt>
|
||||
<dt>import.synonym.end</dt>
|
||||
<dt>import.synonym.project</dt>
|
||||
<dt>import.synonym.priority</dt>
|
||||
<dt>import.synonym.fg</dt>
|
||||
<dt>import.synonym.bg</dt>
|
||||
<dt>import.synonym.description</dt>
|
||||
<dd>
|
||||
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.
|
||||
</dd>
|
||||
|
||||
<p>
|
||||
Note that the command:
|
||||
</p>
|
||||
|
||||
<pre><code>task version</code></pre>
|
||||
|
||||
<p>
|
||||
will display the configuration variables found in the .taskrc file,
|
||||
and will warn you of any variables that are not recognized.
|
||||
</p>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
<div class="content">
|
||||
<p>
|
||||
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td align="right" valign="top" width="200px">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<script type="text/javascript"><!--
|
||||
google_ad_client = "pub-9709799404235424";
|
||||
/* Task Main */
|
||||
google_ad_slot = "8660617875";
|
||||
google_ad_width = 120;
|
||||
google_ad_height = 600;
|
||||
//-->
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||
</script>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||
pageTracker._initData();
|
||||
pageTracker._trackPageview();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
179
html/custom.html
179
html/custom.html
@@ -1,179 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Custom Reports</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="container">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<div id="toolbar">
|
||||
<a href="task.html">Home</a>
|
||||
<a href="setup.html">Setup</a>
|
||||
<a href="30second.html">30-second Tutorial</a>
|
||||
<a href="simple.html">Simple</a>
|
||||
<a href="advanced.html">Advanced</a>
|
||||
<a href="shell.html">Shell</a>
|
||||
<a href="config.html">Configuration</a>
|
||||
<a href="color.html">Colors</a>
|
||||
<a href="recur.html">Recurrence</a>
|
||||
<a href="date.html">Date Handling</a>
|
||||
<a href="faq.html">FAQ</a>
|
||||
<a href="versions.html">Old Versions</a>
|
||||
<a href="links.html">Task on the Web</a>
|
||||
<a href="download.html">Download</a>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<h2 class="title">Custom Reports</h2>
|
||||
<div class="content">
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
More importantly, you can define your own. Here are the
|
||||
three necessary items in the .taskrc file that define a new
|
||||
report:
|
||||
</p>
|
||||
|
||||
<code><pre>report.mine.description=Just the essentials
|
||||
report.mine.columns=id,project,priority,description
|
||||
report.mine.sort=priority-,project+</pre></code>
|
||||
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<code><pre>% task mine</pre></code>
|
||||
|
||||
<p>
|
||||
An optional filter can also be specified like this:
|
||||
</p>
|
||||
|
||||
<code><pre>report.mine.filter=priority:H +bug</pre></code>
|
||||
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<code><pre>report.mine.limit=10</pre></code>
|
||||
|
||||
<p>
|
||||
Here is a list of all the possible columns that may be included
|
||||
in a report:
|
||||
</p>
|
||||
|
||||
<p>
|
||||
It is also possible to override the default columns names, if
|
||||
the following line is added to your .taskrc file:
|
||||
</p>
|
||||
|
||||
<pre><code>report.mine.labels=ID,Project,Priority,Description of task</code></pre>
|
||||
|
||||
<p>
|
||||
Note that there must be the same number of labels as there are
|
||||
columns to label, and they must appear in the same sequence.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>id
|
||||
<li>uuid
|
||||
<li>project
|
||||
<li>priority
|
||||
<li>entry
|
||||
<li>start
|
||||
<li>due
|
||||
<li>age
|
||||
<li>active
|
||||
<li>tags
|
||||
<li>recur
|
||||
<li>description_only
|
||||
<li>description
|
||||
<li>tag_indicator
|
||||
<li>recurrence_indicator
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Custom reports will show up in the task command line usage.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
<div class="content">
|
||||
<p>
|
||||
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td align="right" valign="top" width="200px">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<script type="text/javascript"><!--
|
||||
google_ad_client = "pub-9709799404235424";
|
||||
/* Task Main */
|
||||
google_ad_slot = "8660617875";
|
||||
google_ad_width = 120;
|
||||
google_ad_height = 600;
|
||||
//-->
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||
</script>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||
pageTracker._initData();
|
||||
pageTracker._trackPageview();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
161
html/date.html
161
html/date.html
@@ -1,161 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Date Handling</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="container">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<div id="toolbar">
|
||||
<a href="task.html">Home</a>
|
||||
<a href="setup.html">Setup</a>
|
||||
<a href="30second.html">30-second Tutorial</a>
|
||||
<a href="simple.html">Simple</a>
|
||||
<a href="advanced.html">Advanced</a>
|
||||
<a href="shell.html">Shell</a>
|
||||
<a href="config.html">Configuration</a>
|
||||
<a href="color.html">Colors</a>
|
||||
<a href="recur.html">Recurrence</a>
|
||||
<a href="date.html">Date Handling</a>
|
||||
<a href="faq.html">FAQ</a>
|
||||
<a href="versions.html">Old Versions</a>
|
||||
<a href="links.html">Task on the Web</a>
|
||||
<a href="download.html">Download</a>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<h2 class="title">Date Handling</h2>
|
||||
<div class="content">
|
||||
<p>
|
||||
Task reads dates from the command line, and displays dates in the reports.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
In order to do this in a flexible way, task obeys a configuration variable that
|
||||
determines the expected and desired date format. See the
|
||||
<a href="config.html">Configuring Task</a> page for details.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
In addition to exactly specifying the date, such as:
|
||||
</p>
|
||||
|
||||
<pre><code>% task ... due:7/10/2008</code></pre>
|
||||
|
||||
<p>
|
||||
task supports a flexible variety of alternatives. For example:
|
||||
</p>
|
||||
|
||||
<pre><code>% task ... due:today</code></pre>
|
||||
|
||||
<p>
|
||||
Similarly:
|
||||
</p>
|
||||
|
||||
<pre><code>% task ... due:yesterday
|
||||
% task ... due:tomorrow</code></pre>
|
||||
|
||||
<p>
|
||||
Here are some other forms that are accepted. The day number, followed by an
|
||||
ordinal:
|
||||
</p>
|
||||
|
||||
<pre><code>% task ... due:23rd</code></pre>
|
||||
|
||||
<p>
|
||||
End of month:
|
||||
</p>
|
||||
|
||||
<pre><code>% task ... due:eom</code></pre>
|
||||
|
||||
<p>
|
||||
End of year:
|
||||
</p>
|
||||
|
||||
<pre><code>% task ... due:eoy</code></pre>
|
||||
|
||||
<p>
|
||||
End of week (Friday):
|
||||
</p>
|
||||
|
||||
<pre><code>% task ... due:eow</code></pre>
|
||||
|
||||
<p>
|
||||
Next Friday:
|
||||
</p>
|
||||
|
||||
<pre><code>% task ... due:Friday</code></pre>
|
||||
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre><code>% task ... due:fri</code></pre>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<br />
|
||||
<br />
|
||||
<div class="content">
|
||||
<p>
|
||||
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td align="right" valign="top" width="200px">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<script type="text/javascript"><!--
|
||||
google_ad_client = "pub-9709799404235424";
|
||||
/* Task Main */
|
||||
google_ad_slot = "8660617875";
|
||||
google_ad_width = 120;
|
||||
google_ad_height = 600;
|
||||
//-->
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||
</script>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||
pageTracker._initData();
|
||||
pageTracker._trackPageview();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,155 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Task Downloads</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="container">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<div id="toolbar">
|
||||
<a href="task.html">Home</a>
|
||||
<a href="setup.html">Setup</a>
|
||||
<a href="30second.html">30-second Tutorial</a>
|
||||
<a href="simple.html">Simple</a>
|
||||
<a href="advanced.html">Advanced</a>
|
||||
<a href="shell.html">Shell</a>
|
||||
<a href="config.html">Configuration</a>
|
||||
<a href="color.html">Colors</a>
|
||||
<a href="recur.html">Recurrence</a>
|
||||
<a href="date.html">Date Handling</a>
|
||||
<a href="faq.html">FAQ</a>
|
||||
<a href="versions.html">Old Versions</a>
|
||||
<a href="links.html">Task on the Web</a>
|
||||
<a href="download.html">Download</a>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<h1 class="title">Task Downloads</h1>
|
||||
|
||||
<div class="content">
|
||||
<table>
|
||||
<tr>
|
||||
<td colspan="3">
|
||||
You should use the latest stable release if possible, but
|
||||
the prior release is provided in the event of
|
||||
incompatibility or defect.
|
||||
<br />
|
||||
<br />
|
||||
</td>
|
||||
</tr>
|
||||
<!-- Current release -->
|
||||
<tr style="background-color:#f0f0f0">
|
||||
<td valign="top" rowspan="5">1.8.0 (Latest)<br />?/?/2009</td>
|
||||
<td>Source</td>
|
||||
<td><a href="http://www.beckingham.net/task-1.8.0.tar.gz">task-1.8.0.tar.gz</a></td>
|
||||
</tr>
|
||||
<tr style="background-color:#f0f0f0">
|
||||
<td>Fedora 10 Linux</td>
|
||||
<td><a href="http://www.beckingham.net/task-1.8.0-1.fc10.i386.rpm">task-1.8.0-1.fc10.i386.rpm</a></td>
|
||||
</tr>
|
||||
<tr style="background-color:#f0f0f0">
|
||||
<td>Ubuntu 9.04 (jaunty) Linux</td>
|
||||
<td><a href="http://www.beckingham.net/task-1.8.0-0ubuntu1.i386.deb">task_1.8.0-0ubuntu1_i386.deb</a></td>
|
||||
</tr>
|
||||
<tr style="background-color:#f0f0f0">
|
||||
<td>Debian 5.0.1 (lenny) Linux</td>
|
||||
<td><a href="http://www.beckingham.net/task-1.8.0-0.i386.deb">task_1.8.0-1_i386.deb</a></td>
|
||||
</tr>
|
||||
<tr style="background-color:#f0f0f0">
|
||||
<td>OS X Leopard (Intel)</td>
|
||||
<td><a href="http://www.beckingham.net/task-1.8.0.pkg">task-1.8.0.pkg</a></td>
|
||||
</tr>
|
||||
|
||||
<!-- Prior release -->
|
||||
<tr>
|
||||
<td valign="top" rowspan="2">1.7.0 (Prior)<br />5/14/2009</td>
|
||||
<td>Source</td>
|
||||
<td><a href="http://www.beckingham.net/task-1.7.0.tar.gz">task-1.7.0.tar.gz</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Fedora RPM</td>
|
||||
<td><a href="http://www.beckingham.net/task-1.7.0-2.fc10.i386.rpm">task-1.7.0-2.fc10.i386.rpm</a></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td height="30px"></td>
|
||||
</td>
|
||||
|
||||
<!-- Source -->
|
||||
<tr>
|
||||
<td colspan="3">
|
||||
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.
|
||||
<br />
|
||||
<br />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Development version</td>
|
||||
<td>Git repository</td>
|
||||
<td><a href="http://github.com/pbeckingham/task">http://github.com/pbeckingham/task</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
<div class="content">
|
||||
<p>
|
||||
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td align="right" valign="top" width="200px">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<script type="text/javascript"><!--
|
||||
google_ad_client = "pub-9709799404235424";
|
||||
/* Task Main */
|
||||
google_ad_slot = "8660617875";
|
||||
google_ad_width = 120;
|
||||
google_ad_height = 600;
|
||||
//-->
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||
</script>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||
pageTracker._initData();
|
||||
pageTracker._trackPageview();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
260
html/faq.html
260
html/faq.html
@@ -1,260 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Frequently Asked Questions</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="container">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<div id="toolbar">
|
||||
<a href="task.html">Home</a>
|
||||
<a href="setup.html">Setup</a>
|
||||
<a href="30second.html">30-second Tutorial</a>
|
||||
<a href="simple.html">Simple</a>
|
||||
<a href="advanced.html">Advanced</a>
|
||||
<a href="shell.html">Shell</a>
|
||||
<a href="config.html">Configuration</a>
|
||||
<a href="color.html">Colors</a>
|
||||
<a href="recur.html">Recurrence</a>
|
||||
<a href="date.html">Date Handling</a>
|
||||
<a href="faq.html">FAQ</a>
|
||||
<a href="versions.html">Old Versions</a>
|
||||
<a href="links.html">Task on the Web</a>
|
||||
<a href="download.html">Download</a>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<h2 class="title">Frequently Asked Questions</h2>
|
||||
<div class="content">
|
||||
<p>
|
||||
(Actually, that's a misnomer. These are really Repeatedly Asked
|
||||
Questions.)
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>
|
||||
Q: When I redirect the output of task to a file, I lose all
|
||||
the colors. How do I fix this?
|
||||
</b>
|
||||
<br />
|
||||
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:
|
||||
<pre><code>_forcecolor=on</code></pre>
|
||||
</p>
|
||||
<hr>
|
||||
|
||||
<p>
|
||||
<b>
|
||||
Q: How do I backup my task data files? Where are they?
|
||||
</b>
|
||||
<br />
|
||||
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.
|
||||
<br />
|
||||
<br />
|
||||
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.
|
||||
</p>
|
||||
<hr>
|
||||
|
||||
<p>
|
||||
<b>
|
||||
Q: How can I separate my work tasks from my home tasks?
|
||||
Specifically, can I keep them completely separate?
|
||||
</b>
|
||||
<br />
|
||||
A: You can do this by creating an alternate .taskrc file,
|
||||
then using shell aliases. Here is are example Bash
|
||||
commands to achieve this:
|
||||
|
||||
<pre><code>% cp ~/.taskrc ~/.taskrc_home
|
||||
% (now edit .taskrc_home to change the value of data.location)
|
||||
% alias wtask="task"
|
||||
% alias htask="task rc:~/.taskrc_home"</code></pre>
|
||||
|
||||
This gives you two commands, 'wtask' and 'htask' that
|
||||
operate using two different sets of task data files.
|
||||
</p>
|
||||
<hr>
|
||||
|
||||
<p>
|
||||
<b>
|
||||
Q: Can I revert to a previous version of task? How?
|
||||
</b>
|
||||
<br />
|
||||
A: Yes, you can revert to a previous version of task,
|
||||
simply by <a href="download.html">downloading</a> 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.
|
||||
</p>
|
||||
<p>
|
||||
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!
|
||||
</p>
|
||||
<hr>
|
||||
|
||||
<p>
|
||||
<b>
|
||||
Q: I'm using Ubuntu 9.04, and I want task to word-wrap
|
||||
descriptions. How do I do this?
|
||||
</b>
|
||||
<br />
|
||||
A: You need to install ncurses, by doing this:
|
||||
<code><pre>% sudo apt-get install libncurses5-dev</pre></code>
|
||||
Then you need to rebuild task from scratch, starting with
|
||||
<code><pre>% cd task-X.X.X
|
||||
% ./configure
|
||||
...</pre></code>
|
||||
The result should be a task program that knows the width
|
||||
of the terminal window, and wraps accordingly.
|
||||
</p>
|
||||
<hr>
|
||||
|
||||
<p>
|
||||
<b>
|
||||
Q: How do I build task under Cygwin?
|
||||
</b>
|
||||
<br />
|
||||
A: Task is built the same way everywhere. But under Cygwin, you'll
|
||||
need to make sure you have the following packages available
|
||||
first:
|
||||
|
||||
<ul>
|
||||
<li>gcc
|
||||
<li>make
|
||||
<li>libncurses-devel
|
||||
<li>libncurses8
|
||||
</ul>
|
||||
|
||||
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.
|
||||
</p>
|
||||
<hr>
|
||||
|
||||
<p>
|
||||
<b>
|
||||
Q: Do colors work under Cygwin?
|
||||
</b>
|
||||
<br />
|
||||
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.
|
||||
<br />
|
||||
<br />
|
||||
If you run the command:
|
||||
<code><pre>% task colors</pre></code>
|
||||
Task will display all the colors it can use, and you will
|
||||
see which ones you can use.
|
||||
<br />
|
||||
<br />
|
||||
See the <a href="color.html">color</a> documentation for
|
||||
more details on which colors can be used.
|
||||
</p>
|
||||
<hr>
|
||||
|
||||
<p>
|
||||
<b>
|
||||
Q: How do I use '+word' in a task description, and prevent it
|
||||
from being interpreted as a tag?
|
||||
</b>
|
||||
<br />
|
||||
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:
|
||||
<pre><code>% task add -- +tag</code></pre>
|
||||
Allows the task description to be "+tag". If you use the
|
||||
command:
|
||||
<pre><code>% task <id> edit</code></pre>
|
||||
Then you are free to put (almost) anything in the description
|
||||
field without task interpreting it.
|
||||
</p>
|
||||
<hr>
|
||||
<!--
|
||||
<p>
|
||||
<b>
|
||||
Q:
|
||||
</b>
|
||||
<br />
|
||||
A:
|
||||
</p>
|
||||
<hr>
|
||||
-->
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
<div class="content">
|
||||
<p>
|
||||
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td align="right" valign="top" width="200px">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<script type="text/javascript"><!--
|
||||
google_ad_client = "pub-9709799404235424";
|
||||
/* Task Main */
|
||||
google_ad_slot = "8660617875";
|
||||
google_ad_width = 120;
|
||||
google_ad_height = 600;
|
||||
//-->
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||
</script>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||
pageTracker._initData();
|
||||
pageTracker._trackPageview();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
140
html/filter.html
140
html/filter.html
@@ -1,140 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Task Filters</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="container">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<div id="toolbar">
|
||||
<a href="task.html">Home</a>
|
||||
<a href="setup.html">Setup</a>
|
||||
<a href="30second.html">30-second Tutorial</a>
|
||||
<a href="simple.html">Simple</a>
|
||||
<a href="advanced.html">Advanced</a>
|
||||
<a href="shell.html">Shell</a>
|
||||
<a href="config.html">Configuration</a>
|
||||
<a href="color.html">Colors</a>
|
||||
<a href="recur.html">Recurrence</a>
|
||||
<a href="date.html">Date Handling</a>
|
||||
<a href="faq.html">FAQ</a>
|
||||
<a href="versions.html">Old Versions</a>
|
||||
<a href="links.html">Task on the Web</a>
|
||||
<a href="download.html">Download</a>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<h2 class="title">Task Filters</h2>
|
||||
<div class="content">
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
A task filter consists of additional command line options,
|
||||
that are specified in the same way as when a task is added.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
All task reports can make use of filters.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
For example, the report:
|
||||
</p>
|
||||
|
||||
<code><pre>% task list</pre></code>
|
||||
|
||||
<p>
|
||||
Lists all tasks.
|
||||
</p>
|
||||
|
||||
<code><pre>% task list the</pre></code>
|
||||
|
||||
<p>
|
||||
Lists only tasks with "the" in the task description.
|
||||
</p>
|
||||
|
||||
<code><pre>% task list project:Home priority:H</pre></code>
|
||||
|
||||
<p>
|
||||
Lists only tasks with both the "Home" project and "H" priority.
|
||||
</p>
|
||||
|
||||
<code><pre>% task list +shopping</pre></code>
|
||||
|
||||
<p>
|
||||
Lists only tasks with the "shopping" tag.
|
||||
</p>
|
||||
|
||||
<code><pre>% task list +shopping -gift</pre></code>
|
||||
|
||||
<p>
|
||||
Lists tasks that have the "shopping" tag, but do not have the
|
||||
"gift" tag.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
<div class="content">
|
||||
<p>
|
||||
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td align="right" valign="top" width="200px">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<script type="text/javascript"><!--
|
||||
google_ad_client = "pub-9709799404235424";
|
||||
/* Task Main */
|
||||
google_ad_slot = "8660617875";
|
||||
google_ad_width = 120;
|
||||
google_ad_height = 600;
|
||||
//-->
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||
</script>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||
pageTracker._initData();
|
||||
pageTracker._trackPageview();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
410
html/git.html
410
html/git.html
@@ -1,410 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>git</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="container">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<div id="toolbar">
|
||||
<a href="task.html">Home</a>
|
||||
<a href="setup.html">Setup</a>
|
||||
<a href="30second.html">30-second Tutorial</a>
|
||||
<a href="simple.html">Simple</a>
|
||||
<a href="advanced.html">Advanced</a>
|
||||
<a href="shell.html">Shell</a>
|
||||
<a href="config.html">Configuration</a>
|
||||
<a href="color.html">Colors</a>
|
||||
<a href="recur.html">Recurrence</a>
|
||||
<a href="date.html">Date Handling</a>
|
||||
<a href="faq.html">FAQ</a>
|
||||
<a href="versions.html">Old Versions</a>
|
||||
<a href="links.html">Task on the Web</a>
|
||||
<a href="download.html">Download</a>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<h2 class="title"><a name="simple">Using git</a></h2>
|
||||
<div class="content">
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<pre><code>% git config --global user.name "John Doe"
|
||||
% git config --global user.email "john@doe.com"
|
||||
% git config --global color.ui=always</code></pre>
|
||||
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<pre><code>% cd
|
||||
% git clone git://github.com/pbeckingham/task.git task.git
|
||||
% cd task.git</code></pre>
|
||||
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre><code>% autoreconf
|
||||
...
|
||||
% ./configure --prefix=/usr/local
|
||||
...
|
||||
% make
|
||||
...</code></pre>
|
||||
|
||||
<p>
|
||||
The task binary will be in the src directory. If you run:
|
||||
</p>
|
||||
|
||||
<pre><code>% sudo make install</code></pre>
|
||||
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre><code>% git pull</code></pre>
|
||||
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre><code>% git log</code></pre>
|
||||
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre><code>% git branch
|
||||
* master</code></pre>
|
||||
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre><code>% git branch -a
|
||||
* master
|
||||
remotes/origin/1.6.1
|
||||
remotes/origin/1.7.0
|
||||
remotes/origin/HEAD -> origin/master
|
||||
remotes/origin/master</code></pre>
|
||||
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre><code>% git tag</code></pre>
|
||||
...
|
||||
v1.4.3
|
||||
v1.5.0
|
||||
v1.6.0
|
||||
v1.6.1
|
||||
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<pre><code>% 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</code></pre>
|
||||
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre><code>% git status
|
||||
# On branch 1.7.0
|
||||
nothing to commit (working directory clean)</code></pre>
|
||||
|
||||
<p>
|
||||
No changes. That's what we expect. Now make the changes (any
|
||||
editor will suffice, but assume vi):
|
||||
</p>
|
||||
|
||||
<pre><code>% vi NEWS
|
||||
% vi html/task.html</code></pre>
|
||||
|
||||
<p>
|
||||
Now we expect to see changes. Status says:
|
||||
</p>
|
||||
|
||||
<pre><code>% 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")</code></pre>
|
||||
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre><code>% 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></code></pre>
|
||||
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre><code>% git add NEWS html/task.html
|
||||
% git diff</code></pre>
|
||||
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre><code>% git diff --cached
|
||||
(same as unstaged diff)</code></pre>
|
||||
|
||||
<p>
|
||||
Now the status shows that the files are staged:
|
||||
</p>
|
||||
|
||||
<pre><code>% git status
|
||||
# On branch 1.7.0
|
||||
# Changes to be committed:
|
||||
# (use "git reset HEAD <file>..." to unstage)
|
||||
#
|
||||
# modified: NEWS
|
||||
# modified: html/task.html
|
||||
#</code></pre>
|
||||
|
||||
<p>
|
||||
Now a commit command will commit the staged files:
|
||||
</p>
|
||||
|
||||
<pre><code>% 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(-)</code></pre>
|
||||
|
||||
<p>
|
||||
Now make a patch:
|
||||
</p>
|
||||
|
||||
<pre><code>% git format-patch HEAD^
|
||||
0001-Added-Solaris-8-as-a-supported-platform.patch</code></pre>
|
||||
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre><code>% git diff HEAD^</code></pre>
|
||||
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre><code>% git format-patch HEAD~10</code></pre>
|
||||
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre><code>owner> git apply 0001-Added-Solaris-8-as-a-supported-platform.patch</code></pre>
|
||||
|
||||
<p>
|
||||
Then push the changes with:
|
||||
</p>
|
||||
|
||||
<pre><code>owner> git push</code></pre>
|
||||
|
||||
<p>
|
||||
And that makes them available on github, which means in turn
|
||||
that the next time you run:
|
||||
</p>
|
||||
|
||||
<pre><code>% git pull</code></pre>
|
||||
|
||||
<p>
|
||||
Your changes will have come full circle.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
<div class="content">
|
||||
<p>
|
||||
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td align="right" valign="top" width="200px">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<script type="text/javascript"><!--
|
||||
google_ad_client = "pub-9709799404235424";
|
||||
/* Task Main */
|
||||
google_ad_slot = "8660617875";
|
||||
google_ad_width = 120;
|
||||
google_ad_height = 600;
|
||||
//-->
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||
</script>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||
pageTracker._initData();
|
||||
pageTracker._trackPageview();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 65 KiB |
158
html/import.html
158
html/import.html
@@ -1,158 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Data Import</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="container">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<div id="toolbar">
|
||||
<a href="task.html">Home</a>
|
||||
<a href="setup.html">Setup</a>
|
||||
<a href="30second.html">30-second Tutorial</a>
|
||||
<a href="simple.html">Simple</a>
|
||||
<a href="advanced.html">Advanced</a>
|
||||
<a href="shell.html">Shell</a>
|
||||
<a href="config.html">Configuration</a>
|
||||
<a href="color.html">Colors</a>
|
||||
<a href="recur.html">Recurrence</a>
|
||||
<a href="date.html">Date Handling</a>
|
||||
<a href="faq.html">FAQ</a>
|
||||
<a href="versions.html">Old Versions</a>
|
||||
<a href="links.html">Task on the Web</a>
|
||||
<a href="download.html">Download</a>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<h2 class="title">Data Import</h2>
|
||||
<div class="content">
|
||||
<p>
|
||||
Tasks can be imported from files with this command:
|
||||
|
||||
<pre><code>% task import file</code></pre>
|
||||
|
||||
A variety of different file types are recognized by task, namely:
|
||||
|
||||
<ul>
|
||||
<li>Tasks exported from task prior to version 1.5.0.
|
||||
<li>Tasks exported from task version 1.5.0 and later. The file
|
||||
format changed with 1.5.0.
|
||||
<li>todo.sh files.
|
||||
<li>CSV files with a variety of recognized column names.
|
||||
<li>Plain text files, with one task listed per line.
|
||||
<li>Task command line format.
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre><code>number,status,task
|
||||
1,pending,task one
|
||||
2,pending,task two</code></pre>
|
||||
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>import.synonym.id
|
||||
<li>import.synonym.uuid
|
||||
<li>import.synonym.status
|
||||
<li>import.synonym.tags
|
||||
<li>import.synonym.entry
|
||||
<li>import.synonym.start
|
||||
<li>import.synonym.due
|
||||
<li>import.synonym.recur
|
||||
<li>import.synonym.end
|
||||
<li>import.synonym.project
|
||||
<li>import.synonym.priority
|
||||
<li>import.synonym.fg
|
||||
<li>import.synonym.bg
|
||||
<li>import.synonym.description
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Please note that it is wise to backup your task data files
|
||||
before an import.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
<div class="content">
|
||||
<p>
|
||||
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td align="right" valign="top" width="200px">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<script type="text/javascript"><!--
|
||||
google_ad_client = "pub-9709799404235424";
|
||||
/* Task Main */
|
||||
google_ad_slot = "8660617875";
|
||||
google_ad_width = 120;
|
||||
google_ad_height = 600;
|
||||
//-->
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||
</script>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||
pageTracker._initData();
|
||||
pageTracker._trackPageview();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
221
html/links.html
221
html/links.html
@@ -1,221 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Task on the Web</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="container">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<div id="toolbar">
|
||||
<a href="task.html">Home</a>
|
||||
<a href="setup.html">Setup</a>
|
||||
<a href="30second.html">30-second Tutorial</a>
|
||||
<a href="simple.html">Simple</a>
|
||||
<a href="advanced.html">Advanced</a>
|
||||
<a href="shell.html">Shell</a>
|
||||
<a href="config.html">Configuration</a>
|
||||
<a href="color.html">Colors</a>
|
||||
<a href="recur.html">Recurrence</a>
|
||||
<a href="date.html">Date Handling</a>
|
||||
<a href="faq.html">FAQ</a>
|
||||
<a href="versions.html">Old Versions</a>
|
||||
<a href="links.html">Task on the Web</a>
|
||||
<a href="download.html">Download</a>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<h1 class="title">Task on the Web</h1>
|
||||
<p>
|
||||
Task links from around the web...
|
||||
</p>
|
||||
|
||||
<dt>
|
||||
February 2009, <a href="http://www.macappreviews.net/2009/02/cmd-task-manager">Cmd Task Manager</a>
|
||||
</dt>
|
||||
<dd>
|
||||
Elliott Bradley takes a brief look at task 1.4.3.
|
||||
</dd>
|
||||
|
||||
<dt>
|
||||
February 2009, <a href="http://lifehacker.com/5155450/todotxt-cli-manages-your-tasks-from-the-command-line">Todo.txt CLI Manages Your Tasks from the Command Line</a>
|
||||
</dt>
|
||||
<dd>
|
||||
Gina Trapani generously mentions task in an article about the newly updated todo.sh 2.0.
|
||||
</dd>
|
||||
<br>
|
||||
|
||||
<dt>
|
||||
February, 2009, <a href="http://forum.worklifecreativity.net/index.php/topic,219.0.html">My command line based task management tools</a>
|
||||
</dt>
|
||||
<dd>
|
||||
Richard Querin talks about his task management tools.
|
||||
Richard generously provides the Debian packages for task.
|
||||
</dd>
|
||||
<br>
|
||||
|
||||
<dt>
|
||||
February, 2009, <a href="http://wiki.archlinux.org/index.php/Common_Apps">Common Apps</a>
|
||||
</dt>
|
||||
<dd>
|
||||
<a href="http://wiki.archlinux.org">Archlinux.org</a> mentions task on a page which is
|
||||
a point of reference for people looking for software to fill a particular need.
|
||||
</dd>
|
||||
<br>
|
||||
|
||||
<dt>
|
||||
November 2008, <a href="http://github.com/pbeckingham/task/tree/master/">Task repository on GitHub</a>
|
||||
</dt>
|
||||
<dd>
|
||||
For developers: the task git repository on github.com is now public.
|
||||
</dd>
|
||||
<br>
|
||||
|
||||
<dt>
|
||||
October 2008, <a href="http://blog.rfquerin.org/2008/10/07/using-task-and-dropbox-to-manage-your-to-do-list/">Using Task and Dropbox to manage your To-Do list</a>
|
||||
</dt>
|
||||
<dd>
|
||||
by Richard Querin. Richard discusses the ease of setting up task to
|
||||
use DropBox to share todo lists between work and home.
|
||||
</dd>
|
||||
<br>
|
||||
|
||||
<dt>
|
||||
September 2008, <a href="http://stasantons.blogspot.com/2008/09/task-program-visually-simple.html">Task visualization</a>
|
||||
</dt>
|
||||
<dd>
|
||||
by Stas Antons. Stas - a colleague of mine - presents a visualization
|
||||
of the simplicity of task.
|
||||
</dd>
|
||||
<br>
|
||||
|
||||
<dt>
|
||||
June 2008, <a href="http://blog.rfquerin.org/2008/06/17/building-debian-packages-for-task/">Building Debian Packages For Task</a>
|
||||
</dt>
|
||||
<dd>
|
||||
by Richard Querin. Richard has been providing Debian packages for the
|
||||
various task releases, and discusses how he got up to speed.
|
||||
</dd>
|
||||
<br>
|
||||
|
||||
<dt>
|
||||
June 2008, <a href="http://blog.rfquerin.org/2008/06/06/task-101-an-attempt-at-a-cygwin-build-how-to/">Task 1.0.1 - an attempt at a Cygwin Build How-To</a>
|
||||
</dt>
|
||||
<dd>
|
||||
by Richard Querin. Richard shows us how to build task using Cygwin, after
|
||||
a cry for help on the todo.txt mailing list.
|
||||
</dd>
|
||||
<br>
|
||||
|
||||
<dt>
|
||||
June 2008, <a href="http://www.youtube.com/watch?v=D2Kn4DMOVSw">The second task movie</a>
|
||||
</dt>
|
||||
<dd>
|
||||
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!
|
||||
<p>
|
||||
|
||||
This movie has a voice-over that explains what is going on.
|
||||
<p>
|
||||
|
||||
For a higher-quality version, download the whole
|
||||
<a href="http://www.beckingham.net/todo2.mov">movie file (10MB)</a>.
|
||||
</dd>
|
||||
<br>
|
||||
|
||||
<dt>
|
||||
December 2006, <a href="http://www.youtube.com/watch?v=l68LCl6BYvs">The first task movie</a>
|
||||
</dt>
|
||||
<dd>
|
||||
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.
|
||||
<p>
|
||||
|
||||
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.
|
||||
</dd>
|
||||
<br>
|
||||
|
||||
<dt>
|
||||
June 2006, <a href="http://www.youtube.com/watch?v=daJ1Hs_y738">The original todo.sh movie</a>
|
||||
</dt>
|
||||
<dd>
|
||||
by Gina Trapani. This is the original YouTube todo.sh movie, made to
|
||||
illustrate the power and simplicity of the original todo.sh program.
|
||||
</dd>
|
||||
<br>
|
||||
|
||||
<dt>
|
||||
June 2006, <a href="http://todotxt.com/">Todo.sh, the inspiration for task</a>
|
||||
</dt>
|
||||
<dd>
|
||||
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!
|
||||
</dd>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
<div class="content">
|
||||
<p>
|
||||
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td align="right" valign="top" width="200px">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<script type="text/javascript"><!--
|
||||
google_ad_client = "pub-9709799404235424";
|
||||
/* Task Main */
|
||||
google_ad_slot = "8660617875";
|
||||
google_ad_width = 120;
|
||||
google_ad_height = 600;
|
||||
//-->
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||
</script>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||
pageTracker._initData();
|
||||
pageTracker._trackPageview();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
220
html/recur.html
220
html/recur.html
@@ -1,220 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Recurring Tasks</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="container">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<div id="toolbar">
|
||||
<a href="task.html">Home</a>
|
||||
<a href="setup.html">Setup</a>
|
||||
<a href="30second.html">30-second Tutorial</a>
|
||||
<a href="simple.html">Simple</a>
|
||||
<a href="advanced.html">Advanced</a>
|
||||
<a href="shell.html">Shell</a>
|
||||
<a href="config.html">Configuration</a>
|
||||
<a href="color.html">Colors</a>
|
||||
<a href="recur.html">Recurrence</a>
|
||||
<a href="date.html">Date Handling</a>
|
||||
<a href="faq.html">FAQ</a>
|
||||
<a href="versions.html">Old Versions</a>
|
||||
<a href="links.html">Task on the Web</a>
|
||||
<a href="download.html">Download</a>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<h2 class="title">Recurring Tasks</h2>
|
||||
<div class="content">
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre><code>% task add Pay rent due:7/1/2008 recur:monthly</code></pre>
|
||||
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<pre><code>% 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</code></pre>
|
||||
|
||||
<p>
|
||||
Task creates any overdue tasks, then creates one additional due task. These
|
||||
new task instances are then completed or deleted as you normally would.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre><code>% task add TPS report due:thursday recur:weekly until:8/31/2008</code></pre>
|
||||
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<h4>Deletion</h4>
|
||||
<p>
|
||||
When a recurring task is deleted, you will be asked if you would also like to
|
||||
delete all recurring task instances:
|
||||
</p>
|
||||
|
||||
<pre><code>% 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</code></pre>
|
||||
|
||||
<h4>Modification</h4>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<h4>Recurrence Periods</h4>
|
||||
<p>
|
||||
In the above examples, the recurrence period was specified as "monthly" and
|
||||
"weekly". Task supports several ways of specifying this:
|
||||
</p>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th class="table_h">Period</th>
|
||||
<th class="table_h">Meaning</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="table_d">daily, day, 1d, 2d ...</td>
|
||||
<td class="table_d">Every day, or a number of days</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="table_d">weekdays</td>
|
||||
<td class="table_d">
|
||||
Monday, Tuesday, Wednesday, Thursday and Friday,
|
||||
skipping weekend days
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="table_d">weekly, 1w, 2w ...</td>
|
||||
<td class="table_d">Every week, or a number of weeks</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="table_d">biweekly, fortnight</td>
|
||||
<td class="table_d">Every two weeks</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="table_d">monthly, 1m, 2m ...</td>
|
||||
<td class="table_d">Every month, or a number of months</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="table_d">bimonthly</td>
|
||||
<td class="table_d">Every two months</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="table_d">quarterly, 1q, 2q ...</td>
|
||||
<td class="table_d">Every three months, a quarter, or a number of quarters</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="table_d">semiannual</td>
|
||||
<td class="table_d">Every six months</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="table_d">annual, yearly, 1y, 2y ...</td>
|
||||
<td class="table_d">Every year, or a number of years</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="table_d">biannual, biyearly, 2y</td>
|
||||
<td class="table_d">Every two-years</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
<div class="content">
|
||||
<p>
|
||||
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td align="right" valign="top" width="200px">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<script type="text/javascript"><!--
|
||||
google_ad_client = "pub-9709799404235424";
|
||||
/* Task Main */
|
||||
google_ad_slot = "8660617875";
|
||||
google_ad_width = 120;
|
||||
google_ad_height = 600;
|
||||
//-->
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||
</script>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||
pageTracker._initData();
|
||||
pageTracker._trackPageview();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,155 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Task Usage</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="container">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<div id="toolbar">
|
||||
<a href="task.html">Home</a>
|
||||
<a href="setup.html">Setup</a>
|
||||
<a href="30second.html">30-second Tutorial</a>
|
||||
<a href="simple.html">Simple</a>
|
||||
<a href="advanced.html">Advanced</a>
|
||||
<a href="shell.html">Shell</a>
|
||||
<a href="config.html">Configuration</a>
|
||||
<a href="color.html">Colors</a>
|
||||
<a href="recur.html">Recurrence</a>
|
||||
<a href="date.html">Date Handling</a>
|
||||
<a href="faq.html">FAQ</a>
|
||||
<a href="versions.html">Old Versions</a>
|
||||
<a href="links.html">Task on the Web</a>
|
||||
<a href="download.html">Download</a>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<h1 class="title">ID Sequences</h1>
|
||||
<div class="content">
|
||||
<p>
|
||||
Some task commands require an ID to be specified. For example:
|
||||
</p>
|
||||
|
||||
<pre><code>% task 3 done</code></pre>
|
||||
|
||||
<p>
|
||||
This marks a single task as done. But if you wanted to mark
|
||||
several tasks as done, you could use:
|
||||
</p>
|
||||
|
||||
<pre><code>% task 3,4,5 done</code></pre>
|
||||
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre><code>% task 3-5 done</code></pre>
|
||||
|
||||
<p>
|
||||
Or in a more complex example:
|
||||
</p>
|
||||
|
||||
<pre><code>% task 1,3-5,12 23-25 done</code></pre>
|
||||
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre><code>% task 3 Order part number 4-123</code></pre>
|
||||
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre><code>% task 3 4-123 is back-ordered, try again next week</code></pre>
|
||||
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre><code>% task 3 "4-123 is back-ordered, try again next week"</code></pre>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
<div class="content">
|
||||
<p>
|
||||
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td align="right" valign="top" width="200px">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<script type="text/javascript"><!--
|
||||
google_ad_client = "pub-9709799404235424";
|
||||
/* Task Main */
|
||||
google_ad_slot = "8660617875";
|
||||
google_ad_width = 120;
|
||||
google_ad_height = 600;
|
||||
//-->
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||
</script>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||
pageTracker._initData();
|
||||
pageTracker._trackPageview();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
141
html/setup.html
141
html/setup.html
@@ -1,141 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Task Setup</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="container">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<div id="toolbar">
|
||||
<a href="task.html">Home</a>
|
||||
<a href="setup.html">Setup</a>
|
||||
<a href="30second.html">30-second Tutorial</a>
|
||||
<a href="simple.html">Simple</a>
|
||||
<a href="advanced.html">Advanced</a>
|
||||
<a href="shell.html">Shell</a>
|
||||
<a href="config.html">Configuration</a>
|
||||
<a href="color.html">Colors</a>
|
||||
<a href="recur.html">Recurrence</a>
|
||||
<a href="date.html">Date Handling</a>
|
||||
<a href="faq.html">FAQ</a>
|
||||
<a href="versions.html">Old Versions</a>
|
||||
<a href="links.html">Task on the Web</a>
|
||||
<a href="download.html">Download</a>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<h2 class="title"><a name="setup">Quick Setup</a></h2>
|
||||
<div class="content">
|
||||
<p>
|
||||
Build the task program according to the directions in the INSTALL
|
||||
file. This transcript illustrates a typical installation:
|
||||
</p>
|
||||
|
||||
<pre><code>% 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)</code></pre>
|
||||
|
||||
<p>
|
||||
(For those of you using <a href="http://www.cygwin.com">Cygwin</a>,
|
||||
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".)
|
||||
</p>
|
||||
|
||||
<p>
|
||||
You need to make sure that the installed task program is in your
|
||||
PATH environment variable.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<pre><code>% 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]</code></pre>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
<div class="content">
|
||||
<p>
|
||||
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td align="right" valign="top" width="200px">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<script type="text/javascript"><!--
|
||||
google_ad_client = "pub-9709799404235424";
|
||||
/* Task Main */
|
||||
google_ad_slot = "8660617875";
|
||||
google_ad_width = 120;
|
||||
google_ad_height = 600;
|
||||
//-->
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||
</script>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||
pageTracker._initData();
|
||||
pageTracker._trackPageview();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
129
html/shadow.html
129
html/shadow.html
@@ -1,129 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Task Shadow Files</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="container">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<div id="toolbar">
|
||||
<a href="task.html">Home</a>
|
||||
<a href="setup.html">Setup</a>
|
||||
<a href="30second.html">30-second Tutorial</a>
|
||||
<a href="simple.html">Simple</a>
|
||||
<a href="advanced.html">Advanced</a>
|
||||
<a href="shell.html">Shell</a>
|
||||
<a href="config.html">Configuration</a>
|
||||
<a href="color.html">Colors</a>
|
||||
<a href="recur.html">Recurrence</a>
|
||||
<a href="date.html">Date Handling</a>
|
||||
<a href="faq.html">FAQ</a>
|
||||
<a href="versions.html">Old Versions</a>
|
||||
<a href="links.html">Task on the Web</a>
|
||||
<a href="download.html">Download</a>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<h2 class="title">Task Shadow Files</h2>
|
||||
<div class="content">
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
This means there is always a current version of the task
|
||||
report kept in a text file. Products such as
|
||||
<a href="http://www.samurize.com">Samurize</a>,
|
||||
<a href="http://www.mulle-kybernetik.com/software/MkConsole/">MkConsole</a>,
|
||||
or
|
||||
<a href="http://projects.tynsoe.org/en/geektool/">GeekTool</a>
|
||||
can display this file on the computer desktop, so that it
|
||||
is readily visible.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
To use a shadow file, edit your .taskrc configuration file,
|
||||
and add three entries as shown:
|
||||
</p>
|
||||
|
||||
<pre><code>shadow.file=/path/to/file
|
||||
shadow.command=list pri:H
|
||||
shadow.notify=on</code></pre>
|
||||
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
<div class="content">
|
||||
<p>
|
||||
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td align="right" valign="top" width="200px">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<script type="text/javascript"><!--
|
||||
google_ad_client = "pub-9709799404235424";
|
||||
/* Task Main */
|
||||
google_ad_slot = "8660617875";
|
||||
google_ad_width = 120;
|
||||
google_ad_height = 600;
|
||||
//-->
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||
</script>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||
pageTracker._initData();
|
||||
pageTracker._trackPageview();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
134
html/shell.html
134
html/shell.html
@@ -1,134 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Interacting with the Shell</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="container">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<div id="toolbar">
|
||||
<a href="task.html">Home</a>
|
||||
<a href="setup.html">Setup</a>
|
||||
<a href="30second.html">30-second Tutorial</a>
|
||||
<a href="simple.html">Simple</a>
|
||||
<a href="advanced.html">Advanced</a>
|
||||
<a href="shell.html">Shell</a>
|
||||
<a href="config.html">Configuration</a>
|
||||
<a href="color.html">Colors</a>
|
||||
<a href="recur.html">Recurrence</a>
|
||||
<a href="date.html">Date Handling</a>
|
||||
<a href="faq.html">FAQ</a>
|
||||
<a href="versions.html">Old Versions</a>
|
||||
<a href="links.html">Task on the Web</a>
|
||||
<a href="download.html">Download</a>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<h2 class="title"><a name="shell">Interacting with the Shell</a></h2>
|
||||
<div class="content">
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre><code>% task add Buy bread & milk</code></pre>
|
||||
|
||||
<p>
|
||||
This command is an error because of the &. The shell will
|
||||
consider this to be two commands:
|
||||
</p>
|
||||
|
||||
<pre><code>% task add Buy bread &
|
||||
% milk</code></pre>
|
||||
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre><code>% task add Buy bread \& milk</code></pre>
|
||||
|
||||
<p>
|
||||
Another is to quote the entire description, with either ' or "
|
||||
characters:
|
||||
</p>
|
||||
|
||||
<pre><code>% task add "Buy bread & milk"</code></pre>
|
||||
|
||||
<p>
|
||||
Note that if an & character (or any other character that needs
|
||||
to be escaped for the shell) appears in the
|
||||
<a href="filter.html">filter</a> of a
|
||||
<a href="custom.html">custom report</a>
|
||||
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.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
<div class="content">
|
||||
<p>
|
||||
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td align="right" valign="top" width="200px">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<script type="text/javascript"><!--
|
||||
google_ad_client = "pub-9709799404235424";
|
||||
/* Task Main */
|
||||
google_ad_slot = "8660617875";
|
||||
google_ad_width = 120;
|
||||
google_ad_height = 600;
|
||||
//-->
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||
</script>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||
pageTracker._initData();
|
||||
pageTracker._trackPageview();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
356
html/simple.html
356
html/simple.html
@@ -1,356 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Simple Usage</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="container">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<div id="toolbar">
|
||||
<a href="task.html">Home</a>
|
||||
<a href="setup.html">Setup</a>
|
||||
<a href="30second.html">30-second Tutorial</a>
|
||||
<a href="simple.html">Simple</a>
|
||||
<a href="advanced.html">Advanced</a>
|
||||
<a href="shell.html">Shell</a>
|
||||
<a href="config.html">Configuration</a>
|
||||
<a href="color.html">Colors</a>
|
||||
<a href="recur.html">Recurrence</a>
|
||||
<a href="date.html">Date Handling</a>
|
||||
<a href="faq.html">FAQ</a>
|
||||
<a href="versions.html">Old Versions</a>
|
||||
<a href="links.html">Task on the Web</a>
|
||||
<a href="download.html">Download</a>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<h2 class="title"><a name="simple">Simple Usage</a></h2>
|
||||
<div class="content">
|
||||
<p>
|
||||
Let us begin by adding some tasks:
|
||||
</p>
|
||||
|
||||
<pre><code>% task add Book plane ticket
|
||||
% task add Rent a tux
|
||||
% task add Reserve a rental car
|
||||
% task add Reserve a hotel room</code></pre>
|
||||
|
||||
<p>
|
||||
That's it. You'll notice immediately that task has a very
|
||||
minimalist interface. Let us take a look at those tasks:
|
||||
</p>
|
||||
|
||||
<pre><code>% 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</code></pre>
|
||||
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre><code>% task 2 delete
|
||||
Permanently delete task? (y/n) y</code></pre>
|
||||
|
||||
<p>
|
||||
Task wants you to confirm deletions. To remove the confirmation,
|
||||
edit your .taskrc file and change the line:
|
||||
</p>
|
||||
|
||||
<pre><code>confirmation=yes</code></pre>
|
||||
|
||||
<p>
|
||||
to have a value of "no".
|
||||
</p>
|
||||
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre><code>% 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</code></pre>
|
||||
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre><code>% 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</code></pre>
|
||||
|
||||
<p>
|
||||
Task matches the leftmost part of the project when searching, so
|
||||
projects may be abbreviated:
|
||||
</p>
|
||||
|
||||
<pre><code>% task ls project:Wedding.Tra
|
||||
|
||||
ID Project Pri Description
|
||||
2 Wedding.Transport Reserve a rental car</code></pre>
|
||||
|
||||
<p>
|
||||
This way of matching projects can be used to see all tasks under
|
||||
the "Wedding" project and all subprojects:
|
||||
</p>
|
||||
|
||||
<pre><code>% task ls project:Wedding
|
||||
|
||||
ID Project Pri Description
|
||||
2 Wedding.Transport Reserve a rental car
|
||||
1 Wedding Book plane ticket</code></pre>
|
||||
|
||||
<p>
|
||||
Let's reassign 2 back to the "Wedding" project:
|
||||
</p>
|
||||
|
||||
<pre><code>% task 2 project:Wedding</code></pre>
|
||||
|
||||
<p>
|
||||
Now that projects are assigned, we can look at just the
|
||||
Wedding project tasks:
|
||||
</p>
|
||||
|
||||
<pre><code>% task ls project:Wedding
|
||||
|
||||
ID Project Pri Description
|
||||
1 Wedding Book plane ticket
|
||||
2 Wedding Reserve a rental car</code></pre>
|
||||
|
||||
<p>
|
||||
Any command arguments after the 'ls' are used for filtering the
|
||||
output. We could also have requested:
|
||||
</p>
|
||||
|
||||
<pre><code>% task ls ticket plane
|
||||
|
||||
ID Project Pri Description
|
||||
1 Wedding Book plane ticket</code></pre>
|
||||
|
||||
<p>
|
||||
Now let's prioritize. Priorities can be H, M or L (High, Medium,
|
||||
Low).
|
||||
</p>
|
||||
|
||||
<pre><code>% 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</code></pre>
|
||||
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre><code>% task add project:Wedding priority:H Book plane ticket<code></pre>
|
||||
|
||||
<p>
|
||||
The 'ls' command provides the least information for each task. The
|
||||
'list' command provides more:
|
||||
</p>
|
||||
|
||||
<pre><code>% 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</code></pre>
|
||||
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre><code>% 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</code></pre>
|
||||
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre><code>color.due=red
|
||||
color.due=on_blue
|
||||
color.due=red on_blue
|
||||
color.due=bold_red on_blue</code></pre>
|
||||
|
||||
<p>
|
||||
Where color is one of the following:
|
||||
</p>
|
||||
|
||||
<pre><code>black
|
||||
blue
|
||||
red
|
||||
green
|
||||
cyan
|
||||
magenta
|
||||
yellow
|
||||
white</code></pre>
|
||||
|
||||
<p>
|
||||
All colors are specified in this way. Take a look in .taskrc for
|
||||
all the other color rules that you control.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Tagging tasks is a good way to group them, aside from specifying a
|
||||
project. To add a tag to a task:
|
||||
</p>
|
||||
|
||||
<pre><code>% task <id> +tag<code></pre>
|
||||
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<pre><code>% 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</code></pre>
|
||||
|
||||
<p>
|
||||
To remove a tag from a task, use the minus sign:
|
||||
</p>
|
||||
|
||||
<pre><code>% task 3 -john</code></pre>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
<div class="content">
|
||||
<p>
|
||||
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td align="right" valign="top" width="200px">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<script type="text/javascript"><!--
|
||||
google_ad_client = "pub-9709799404235424";
|
||||
/* Task Main */
|
||||
google_ad_slot = "8660617875";
|
||||
google_ad_width = 120;
|
||||
google_ad_height = 600;
|
||||
//-->
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||
</script>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||
pageTracker._initData();
|
||||
pageTracker._trackPageview();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,108 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Tab Completion</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="container">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<div id="toolbar">
|
||||
<a href="task.html">Home</a>
|
||||
<a href="setup.html">Setup</a>
|
||||
<a href="30second.html">30-second Tutorial</a>
|
||||
<a href="simple.html">Simple</a>
|
||||
<a href="advanced.html">Advanced</a>
|
||||
<a href="shell.html">Shell</a>
|
||||
<a href="config.html">Configuration</a>
|
||||
<a href="color.html">Colors</a>
|
||||
<a href="recur.html">Recurrence</a>
|
||||
<a href="date.html">Date Handling</a>
|
||||
<a href="faq.html">FAQ</a>
|
||||
<a href="versions.html">Old Versions</a>
|
||||
<a href="links.html">Task on the Web</a>
|
||||
<a href="download.html">Download</a>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<h2 class="title"><a name="simple">Tab Completion</a></h2>
|
||||
<div class="content">
|
||||
<p>
|
||||
There is a Bash tab completion script distributed with task,
|
||||
called task_completion.sh.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
To install it, copy it to your
|
||||
|
||||
<code>/etc/bash_completion.d</code>
|
||||
|
||||
directory (in case you want to have it available system-wide)
|
||||
and then
|
||||
|
||||
<pre><code>source /etc/bash_completion</code></pre>
|
||||
|
||||
or source it from your home directory's bashrc files.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
<div class="content">
|
||||
<p>
|
||||
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td align="right" valign="top" width="200px">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<script type="text/javascript"><!--
|
||||
google_ad_client = "pub-9709799404235424";
|
||||
/* Task Main */
|
||||
google_ad_slot = "8660617875";
|
||||
google_ad_width = 120;
|
||||
google_ad_height = 600;
|
||||
//-->
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||
</script>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||
pageTracker._initData();
|
||||
pageTracker._trackPageview();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
126
html/task.css
126
html/task.css
@@ -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; }
|
||||
|
||||
248
html/task.html
248
html/task.html
@@ -1,248 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Latest Release</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="container">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<div id="toolbar">
|
||||
<a href="task.html">Home</a>
|
||||
<a href="setup.html">Setup</a>
|
||||
<a href="30second.html">30-second Tutorial</a>
|
||||
<a href="simple.html">Simple</a>
|
||||
<a href="advanced.html">Advanced</a>
|
||||
<a href="shell.html">Shell</a>
|
||||
<a href="config.html">Configuration</a>
|
||||
<a href="color.html">Colors</a>
|
||||
<a href="recur.html">Recurrence</a>
|
||||
<a href="date.html">Date Handling</a>
|
||||
<a href="faq.html">FAQ</a>
|
||||
<a href="versions.html">Old Versions</a>
|
||||
<a href="links.html">Task on the Web</a>
|
||||
<a href="download.html">Download</a>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<h1 class="title">Task</h1>
|
||||
<p>
|
||||
Task is an open source, command-line, TODO list manager.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Here you will find information on how to acquire, build, configure,
|
||||
use and become proficient with the task program.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="setup.html">Quick Setup</a>
|
||||
<li><a href="30second.html">30-second Tutorial</a>
|
||||
<li><a href="simple.html">Simple Usage</a>
|
||||
<li><a href="advanced.html">Advanced Usage</a>
|
||||
<li><a href="shell.html">Interacting with the Shell</a>
|
||||
<li><a href="config.html">Configuring Task</a>
|
||||
<li><a href="color.html">Color</a>
|
||||
<li><a href="recur.html">Recurring Tasks</a>
|
||||
<li><a href="date.html">Date Handling</a>
|
||||
<li><a href="versions.html">Old Versions</a>
|
||||
<li><a href="filter.html">Filters</a>
|
||||
<li><a href="shadow.html">Shadow Files</a>
|
||||
<li><a href="custom.html">Custom Reports</a>
|
||||
<li><a href="import.html">Data Import</a>
|
||||
<li><a href="faq.html">Frequently Asked Questions</a>
|
||||
<li><a href="sequence.html">ID Sequences</a>
|
||||
<li><a href="tab_completion.html">Tab Completion</a>
|
||||
<li><a href="git.html">How to use git and contribute to task</a>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
More documents are being written, and will be added here.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Alternatively, watch the
|
||||
<a href="http://www.youtube.com/watch?v=D2Kn4DMOVSw">task movie</a>
|
||||
which illustrates many of task's features.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
For the latest news, discussion of proposed task features, and
|
||||
somewhere to voice your opinions, join us at
|
||||
<a href="http://groups.google.com/group/taskprogram">http://groups.google.com/group/taskprogram</a>.
|
||||
|
||||
<table border=0 style="background-color: #fff; padding: 5px;" cellspacing=0>
|
||||
<tr>
|
||||
<td>
|
||||
<img src="http://groups.google.com/groups/img/3nb/groups_bar.gif"
|
||||
height=26 width=132 alt="Google Groups">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding-left: 5px">
|
||||
<b>Subscribe to taskprogram</b>
|
||||
</td>
|
||||
</tr>
|
||||
<form action="http://groups.google.com/group/taskprogram/boxsubscribe">
|
||||
<tr>
|
||||
<td style="padding-left: 5px;">
|
||||
Email:
|
||||
<input type=text name=email>
|
||||
<input type=submit name="sub" value="Subscribe">
|
||||
</td>
|
||||
</tr>
|
||||
</form>
|
||||
<tr>
|
||||
<td align=right>
|
||||
<a href="http://groups.google.com/group/taskprogram">Visit this group</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</p>
|
||||
|
||||
<br />
|
||||
<h2 class="title">Get the Latest Stable Release</h2>
|
||||
|
||||
<div class="content">
|
||||
<table>
|
||||
<tr>
|
||||
<td colspan="3">
|
||||
Ready compiled install-packages for several Linux distributions can be found on the
|
||||
<a href="download.html">Download</a>-page.
|
||||
<br />
|
||||
<br />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Source</td>
|
||||
<td><a href="http://www.beckingham.net/task-1.8.0.tar.gz">task-1.8.0.tar.gz</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Git repository</td>
|
||||
<td><a href="http://github.com/pbeckingham/task">http://github.com/pbeckingham/task</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h2>New in version 1.8.0 (?)</h2>
|
||||
<ul>
|
||||
<li>Added zsh tab completion script (thanks to P.C. Shyamshankar).
|
||||
<li>Fixed bug that cause the _forcecolor configuration variable to be
|
||||
considered obsolete (thank to Bruce Dillahunty).
|
||||
<li>Fixed documentation errors (thanks to Thomas@BIC).
|
||||
<li>The 'weekstart' configuration variable now controls the 'calendar'
|
||||
report (thanks to Federico Hernandez).
|
||||
<li>The 'displayweeknumber' configuration variable now controls the display
|
||||
of week number in the 'calendar' report (thanks to Federico Hernandez).
|
||||
<li>Supports '--' argument to indicate that all subsequence arguments are
|
||||
part of the description, despite what they otherwise might mean.
|
||||
<li>Removed support for the obsolete task file format 1 (never released).
|
||||
<li>Fixed bug that allowed blank annotations to be added (thanks to Bruce
|
||||
Dillahunty).
|
||||
<li>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).
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
(Find out <a href="versions.html">what was new in prior versions</a>)
|
||||
</p>
|
||||
|
||||
<h2>Troubleshooting</h2>
|
||||
<p>
|
||||
Task has been built from source and tested in the following environments:
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<ul>
|
||||
<li>OS X 10.4 Tiger
|
||||
<li>OS X 10.5 Leopard
|
||||
<li>Fedora Core 8
|
||||
<li>Fedora Core 9
|
||||
<li>Fedora Core 10
|
||||
<li>Ubuntu 7 Feisty Fawn
|
||||
<li>Ubuntu 8 Hardy Heron
|
||||
<li>Ubuntu 8.10 Intrepid Ibex
|
||||
<li>Ubuntu 9.04 Jaunty Jackalope
|
||||
<li>Arch Linux
|
||||
<li>Slackware 12.2
|
||||
<li>Solaris 8
|
||||
<li>Solaris 10
|
||||
<li>Cygwin 1.5.25-14
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If you have difficulties building task, have found a bug, have a
|
||||
suggestion for improvement, or a feature request, please send mail to
|
||||
<a href="mailto:task@beckingham.net">task@beckingham.net</a>, or
|
||||
post a message to the
|
||||
<a href="mailto:taskprogram@googlegroups.com">taskprogram@googlegroups.com</a>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Take a look at the <a href="faq.html">FAQ</a>
|
||||
for tips and workarounds to problems.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
<div class="content">
|
||||
<p>
|
||||
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td align="right" valign="top" width="200px">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<script type="text/javascript"><!--
|
||||
google_ad_client = "pub-9709799404235424";
|
||||
/* Task Main */
|
||||
google_ad_slot = "8660617875";
|
||||
google_ad_width = 120;
|
||||
google_ad_height = 600;
|
||||
//-->
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||
</script>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||
pageTracker._initData();
|
||||
pageTracker._trackPageview();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,358 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Task Prior Versions</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="container">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<div id="toolbar">
|
||||
<a href="task.html">Home</a>
|
||||
<a href="setup.html">Setup</a>
|
||||
<a href="30second.html">30-second Tutorial</a>
|
||||
<a href="simple.html">Simple</a>
|
||||
<a href="advanced.html">Advanced</a>
|
||||
<a href="shell.html">Shell</a>
|
||||
<a href="config.html">Configuration</a>
|
||||
<a href="color.html">Colors</a>
|
||||
<a href="recur.html">Recurrence</a>
|
||||
<a href="date.html">Date Handling</a>
|
||||
<a href="faq.html">FAQ</a>
|
||||
<a href="versions.html">Old Versions</a>
|
||||
<a href="links.html">Task on the Web</a>
|
||||
<a href="download.html">Download</a>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<h1 class="title">Task Prior Versions</h1>
|
||||
<br />
|
||||
|
||||
<div class="content">
|
||||
<h4>New in version 1.7.0 (5/14/2009)</h4>
|
||||
<ul>
|
||||
<li>Improved the errors when parsing a corrupt or unrecognized pending.data
|
||||
or completed.data file (thanks to T. Charles Yun).
|
||||
<li>Added details to the "info" report about recurring tasks (thanks to T.
|
||||
Charles Yun).
|
||||
<li>Now writes a sample "defaultwidth" configuration variable to the default
|
||||
.taskrc file (thanks to T. Charles Yun).
|
||||
<li>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".
|
||||
<li>Fixed bug in the ghistory report, which caused it to only show a new
|
||||
month if a task was added during that month.
|
||||
<li>New command "duplicate" which allows an existing task to be duplicated,
|
||||
and also have modifications applied (thanks to David J Patrick).
|
||||
<li>The "append", and "done" commands now allow modifications to be applied
|
||||
to the task(s) (thanks to David J Patrick).
|
||||
<li>Improved word wrapping in various output.
|
||||
<li>Fixed bug that added an extra line between header and graph in the
|
||||
ghistory report.
|
||||
<li>Added simple 'taskprogram' mailing list subscribe form to the web site.
|
||||
<li>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.
|
||||
<li>Modified the "stats" report so that it has the same aesthetics as the
|
||||
other reports.
|
||||
<li>New "timesheet" command displays tasks completed and started, per week,
|
||||
and can display multiple weeks.
|
||||
<li>New tab completion script, task_completion.sh, for bash users, is installed
|
||||
to /usr/local/share/task (thanks to Federico Hernandez).
|
||||
<li>Applied patch to allow task to build on Arch Linux (thanks to Johan Friis).
|
||||
<li>Applied patch to fix a UUID bug on Solaris 8 (thanks to Steven de Brouwer).
|
||||
<li>The task man page is now installed. Try "man task" (thanks to Federico
|
||||
Hernandez and P.C. Shyamshankar).
|
||||
<li>Fixed bug that causes task to create a default .task directory, even if
|
||||
data.location specified otherwise (thanks to Federico Hernandez).
|
||||
<li>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.
|
||||
</ul>
|
||||
|
||||
<h4>New in version 1.6.1 (4/24/2009)</h4>
|
||||
<ul>
|
||||
<li>Fixed bug that caused new, first-time .taskrc files to be written without
|
||||
including the custom report labels (thanks to P.C. Shyamshankar).
|
||||
</ul>
|
||||
|
||||
<h4>New in version 1.6.0 (4/13/2009)</h4>
|
||||
<ul>
|
||||
<li>Added support for new "append" command that adds more description text to
|
||||
an existing task.
|
||||
<li>Added support for the "weekdays" recurrence, which means a task can recur
|
||||
five times a week, and not on weekends (thanks to Chris Pride).
|
||||
<li>UTF8 text is now supported in task project names, tags and descriptions.
|
||||
<li>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).
|
||||
<li>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).
|
||||
<li>A task can now be annotated with the command "task <id> annotate ...", and
|
||||
a timestamped annotation will appear in reports.
|
||||
<li>A 'description_only' column is now available for use in custom reports,
|
||||
and it excludes annotations.
|
||||
<li>A task can now be upgraded to a recurring task by adding a recurrence
|
||||
frequency, a due date, and an optional until date.
|
||||
<li>When a recurring task is modified, all other instances of the recurring
|
||||
task are also modified.
|
||||
<li>Custom reports now support user-specified column labels (thanks to T.
|
||||
Charles Yun).
|
||||
<li>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.
|
||||
<li>Export was including 'id' in the column header even though it was not
|
||||
included in the data.
|
||||
<li>The task file format has changed slightly. Please back up your task
|
||||
data files before upgrading to 1.6.0.
|
||||
<li>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.
|
||||
<li>Added new column 'tag_indicator' that displays a '+' if the task
|
||||
has any tags. This column can be added to any custom report.
|
||||
<li>Fixed bug where sometimes a task description was concatenated oddly if
|
||||
there was a colon somewhere in the description.
|
||||
<li>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).
|
||||
<li>Annotations can now be modified with the substitution commands /from/to/.
|
||||
<li>Substitutions can now be made global with /from/to/g and all occurrences
|
||||
of "from" will be replaced with "to".
|
||||
</ul>
|
||||
|
||||
<h4>New in version 1.5.0 (3/15/2009)</h4>
|
||||
<ul>
|
||||
<li>Removed deprecated TUTORIAL file.
|
||||
<li>Removed support for the "showage" configuration variable.
|
||||
<li>"task stop" can remove the start time from a started task.
|
||||
<li>"task ghistory" now displays a differently aligned graph, allowing
|
||||
easier comparison by month of tasks added versus completed and deleted.
|
||||
<li>"task version" command now reports unrecognized configuration variables,
|
||||
which may be spelling mistakes or deprecated variables.
|
||||
<li>"configure --enable-debug" now supported to suppress compiler optimization
|
||||
to allow debugging.
|
||||
<li>Allow lower case priorities, and automatically upper case them.
|
||||
<li>Added support for "due" configuration variable which defines the number
|
||||
of days in the future when a task is considered due.
|
||||
<li>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.
|
||||
<li>New online documentation for custom reports.
|
||||
<li>New algorithm for determining when the "nag" message is displayed.
|
||||
<li>Fixed bug where task hangs with a certain combination of recurring tasks
|
||||
and shadow files.
|
||||
<li>Fixed bug with the task sort algorithm, which led to an unstable sequence
|
||||
when there were only a handful of tasks.
|
||||
<li>Performance enhanced by eliminating unnecessary sorting.
|
||||
<li>Task now has a large (and growing) test suite and bug regression tests
|
||||
to help ensure higher quality releases.
|
||||
<li>Fixed bug that caused large performance hit during table rendering.
|
||||
<li>Fixed bug that concatenated a modified description without spaces.
|
||||
<li>Added new column 'recur' that displays the recurrence period of any
|
||||
recurring tasks. This column can be added to any custom report.
|
||||
<li>Added support for "color.recurring" configuration variable which
|
||||
specifies the color of recurring tasks.
|
||||
<li>Added support for "locking" configuration variable that controls whether
|
||||
file locking is used.
|
||||
<li>Task export feature now includes recurrence information, removes nested
|
||||
quotes, and limits output to pending tasks.
|
||||
<li>Task no longer includes deleted tasks in the summary report (thanks to
|
||||
Benjamin Tegarden).
|
||||
<li>Fixed bug that prevented the summary report from properly reporting
|
||||
recently completed tasks.
|
||||
</ul>
|
||||
|
||||
<h4>New in version 1.4.3 (11/1/2008)</h4>
|
||||
<ul>
|
||||
<li>Fixed misleading task count at bottom of "info" report.
|
||||
<li>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".
|
||||
<li>Task now displays a message whenever a shadow file is updated, if the
|
||||
"shadow.notify" configuration variable is set "on".
|
||||
<li>Fixed bug whereby adding a task with a \n, \r or \f did not fail properly.
|
||||
<li>Removed "task usage" command.
|
||||
<li>Added documentation for Shadow files.
|
||||
<li>Added documentation for task filters.
|
||||
</ul>
|
||||
|
||||
<h4>New in version 1.4.2 (9/18/2008)</h4>
|
||||
<ul>
|
||||
<li>"task undo" can now retract a "task done" command, provided no
|
||||
reports have been run.
|
||||
<li>Task now correctly sorts on entire strings, instead of just the
|
||||
first character (thanks to Andy Lester).
|
||||
<li>Task now uses dashes (-----) to underline column headings when
|
||||
color is disabled (thanks to Vincent Fleuranceau).
|
||||
<li>Task now allows mixed case attribute names (pri:, PRI:, Pri: ...)
|
||||
and commands (add, ADD, Add ...) (thanks to Vincent Fleuranceau).
|
||||
<li>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).
|
||||
<li>Task supports improved word-wrapping to the terminal width.
|
||||
<li>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.
|
||||
<li>Task supports modifying the existing description of a task, with the
|
||||
following syntax: task <id> "new description ...".
|
||||
<li>Fixed bug so that relative dates in filters (task list due:eom,
|
||||
task list due:tomorrow, task list due:23rd ...) are now properly
|
||||
supported.
|
||||
<li>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)
|
||||
</ul>
|
||||
|
||||
<h4>New in version 1.4.1 (7/18/2008)</h4>
|
||||
<ul>
|
||||
<li>Fixed bug: Descriptions could not be altered with "task 123 New description"
|
||||
<li>Tweak: For "task calendar" month names are now centered over the month
|
||||
<li>Removed TUTORIAL file contents in favor of online version
|
||||
<li>New Mac Intel-only Leopard (10.5) binary package
|
||||
</ul>
|
||||
|
||||
<h4>New in version 1.4.0 (7/10/2008)</h4>
|
||||
<ul>
|
||||
<li>Added new <a href="recur.html">recurring tasks</a> feature
|
||||
<li>Added "task undelete" feature to restore a (very) recently deleted
|
||||
task
|
||||
<li>Added averages to the "task history" report
|
||||
<li>Added bar chart history report "task ghistory"
|
||||
<li>Added support for rc:<file> to allow override of the default
|
||||
~/.taskrc file
|
||||
<li>Added support for relative due: dates, such as "tomorrow", "friday",
|
||||
"23rd", "eom"
|
||||
<li>Added support for task filtering on all reports
|
||||
<li>Automatically shuts off color, ncurses when output is not to a tty
|
||||
<li>Added support for the ~ character in .taskrc data.location, for flexibility
|
||||
<li>Allows colons on the description, provided what is to the left of the colon
|
||||
is not a standard attribute name
|
||||
<li>Fixed bug where Esc[0m sequences were being emitted for no good reason
|
||||
<li>Fixed bug where table headers are underlined when color is turned off
|
||||
<li>Fixed bug where adding a blank priority resulted in an assigned garbage value
|
||||
<li>Fixed bug parsing date "07/08/2008" when using dateformat "m/d/Y"
|
||||
</ul>
|
||||
|
||||
<h4>New in version 1.3.1</h4>
|
||||
<ul>
|
||||
<li>New configuration variable "defaultwidth" determines the width
|
||||
of windows in the absense of ncurses support
|
||||
<li>Fixed bug where "showage" configuration variable was not being
|
||||
oberved by the "task long" report
|
||||
<li>Fixed bug causing segmentation faults (mostly for Ubuntu users)
|
||||
when various commands are run
|
||||
<li>Fixed bug so that task now will recreate a missing ~/.taskrc file,
|
||||
OR a missing ~/.task directory
|
||||
</ul>
|
||||
|
||||
<h4>New in version 1.3.0</h4>
|
||||
<ul>
|
||||
<li>"task calendar" now displays multiple months per line, adjustable
|
||||
by the "monthsperline" configuration variable. Feature added by
|
||||
Damian Glenny
|
||||
<li>Displays shorter message when a command is entered incorrectly,
|
||||
and the full usage for "task help"
|
||||
<li>"task export" can now filter tasks like the reports
|
||||
<li>"task oldest" shows the oldest tasks
|
||||
<li>"task newest" shows the newest tasks
|
||||
<li>Fixed bug where task generates a segmentation fault for several
|
||||
commands, when no "dateformat" configuration variable was present
|
||||
<li>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
|
||||
<li>Fixed bug whereby "1 wks" was being improperly pluralized
|
||||
</ul>
|
||||
|
||||
<h4>New in version 1.2.0</h4>
|
||||
<ul>
|
||||
<li>Subprojects supported - please see documentation below, or TUTORIAL
|
||||
file
|
||||
<li>"dateformat" configuration variable now properly used to parse as
|
||||
well as render dates
|
||||
<li>"task list x" now performs a caseless comparison between "x" and
|
||||
the task description
|
||||
<li>"showage" configuration variable determines whether the "Age" column
|
||||
should appear on the "task list" and "task next" reports
|
||||
<li>Improvements to the TUTORIAL file and this page
|
||||
</ul>
|
||||
|
||||
<h4>New in version 1.1.0</h4>
|
||||
<ul>
|
||||
<li>"blanklines" configuration variable to stop displaying unnecessary
|
||||
white space and thus work better on small-screen devices
|
||||
<li>"dateformat" configuration now determines how dates are formatted
|
||||
<li>Better formatting of "task tags" output
|
||||
<li>This home page set up, with TUTORIAL
|
||||
<li>Added tags to the "task long" report
|
||||
</ul>
|
||||
|
||||
<h4>New in version 1.0.1</h4>
|
||||
<ul>
|
||||
<li>Fixed bug where the UUID generator not properly terminating strings
|
||||
<li>Fixed bug where srandom/srand not called prior to custom UUID generation
|
||||
</ul>
|
||||
|
||||
<h4>Version 1.0.0</h4>
|
||||
Task 1.0.0 was the first publicly available version of task.
|
||||
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
<div class="content">
|
||||
<p>
|
||||
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td align="right" valign="top" width="200px">
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
|
||||
<script type="text/javascript"><!--
|
||||
google_ad_client = "pub-9709799404235424";
|
||||
/* Task Main */
|
||||
google_ad_slot = "8660617875";
|
||||
google_ad_width = 120;
|
||||
google_ad_height = 600;
|
||||
//-->
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||
</script>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||
pageTracker._initData();
|
||||
pageTracker._trackPageview();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user