/
reference-todo.gtd
341 lines (244 loc) · 6.47 KB
/
reference-todo.gtd
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
// comment
# comment
; comment
/*
multi-line comment
*/
# include other files
include: ./path/to/file
include: path/to/file
include: /path/to/file
# define tasks using `task:` keyword.
# there are other attributes (followed by a colon) that allow you to add more metadata to tasks.
# all attributes must start on its own line with nothing before it (not even whitespace)
# task attribute + other attributes (e.g. `status:`) make up a 'task block'.
# minimal task [block] (`task:` is required)
task: buy milk
## aliases:
action: buy milk
todo: buy milk
item: buy milk
# unicode support (e.g. emoji)
task: create gtd.txt 😀
# tasks are separated by:
# 1) at least one blank line in-between them,
# 2) or at least one comment in-between them;
# 3) or any any combination of (1) and (2) with whitespace (e.g. space, tabs, carriage returns, etc)
#
# protip: add comments before task blocks
task: buy milk
task: buy orange juice
# comment
task: buy orange juice
/* comment
*/
/* comment
*/ # comment
task: buy orange juice
# you may explicitly separate tasks with at least four or more of:
# = ====
# - ----
# # ####
# / ////
# * ****
# _ ____
# : ::::
#
# there shall be no whitespace before task separators on the same line.
task: buy milk
=====
task: buy orange juice
-----
task: buy orange juice
#####
task: buy orange juice
/////
task: buy orange juice
*****
task: buy orange juice
_____
task: buy orange juice
:::::
task: buy orange juice
~~~~~
task: buy orange juice
# add priority to tasks
task: buy milk
priority: 9001
## priority can be negative
task: buy milk
priority: -9001
## by default, tasks are assigned with a priority of 0
# associate a task with a project separated with an optional delimiter
# tasks without a project are assigned to an 'inbox'
task: buy milk
project: personal / food
## extra redundant delimeters are ignored
task: buy milk
project: ////personal///////food/////
# It may be useful to enforce tasks within a file to have project paths that begin
# with a prefix.
required project prefix: inbox / chores
require project prefix: inbox / chores
require_project_prefix: inbox / chores
required_project_prefix: inbox / chores
# created datetime
task: buy milk
created: jan 11, 2016
task: buy milk
created: jan 11, 2016 5pm
task: buy milk
created: jan 11, 2016 5:46am
## date as alias of created
task: buy milk
date: jan 11, 2016 5:46am
## 24 hour clock convention
task: buy milk
created: jan 11, 2016 06:00
task: buy milk
created: jan 11, 2016 0600
task: buy milk
created: 0600 jan 11, 2016
# complete a task
task: buy milk
project: personal/food
status: complete
status: done
status: finished
# If you don't want to pollute your gtd files with completed tasks, you may hint
# that those files shouldn't contain completed tasks. Therefore forcing you
# to reorganize them elsewhere e.g. putting them into completed.gtd
#
# Include this directive (or aliases) to ensure that the current file does not
# contain completed tasks.
file_no_done_tasks: true
require no done tasks: true
require no completed tasks: true
require no finished tasks: true
# due dates
task: buy milk
due: jan 11, 2016 5pm
# defer tasks from review, and specify date of when defer expires
task: buy milk
defer: jan 11, 2016 5pm
## or use various aliases
task: buy milk
defer until: jan 11, 2016 5pm
defer till: jan 11, 2016 5pm
hide: jan 11, 2016 5pm
hidden: jan 11, 2016 5pm
hide till: jan 11, 2016 5pm
hide until: jan 11, 2016 5pm
## you may defer tasks for forever
task: world domination
defer: forever
## deferred tasks will be revealed for review when it is due
task: world domination
defer: forever
due: december 12, 2012
# incubate tasks
# hide them from being output by default.
# you will need to pass a command line option to display them
task: buy milk
status: incubate
## incubate aliases (case-insensitive)
task: buy milk
status: hide
status: hidden
status: later
status: someday
status: inactive
status: not active
## incubate tasks with `defer` date will be revealed after the `defer` date & time has passed.
## after the specified date & time, the task will display for review
task: buy milk
status: incubate
defer: jan 11, 2016 5pm
# flagging tasks
# you may flag tasks, which may be useful for filtering out any non-flagged tasks
# or for flagged tasks to be filtered out
task: buy milk
flag: true
flag: false
flag: yes
flag: no
# assign tags to a task; comma separated
task: buy milk
tags: grocery, food
tag: grocery, food
## extra redundant delimeters are ignored
task: buy milk
tags: ,,,grocery,,,, food,,,
tag: ,,,grocery,,,,, food,,,
# assign contexts to a task; comma separated
task: buy milk
context: supermarket, real life
contexts: supermarket, real life
## extra redundant delimeters are ignored
task: buy milk
context: ,,,supermarket,,,, real life,,,
contexts: ,,,supermarket,,,, real life,,,
# You may track how much time you spent on a task.
#
# This combos well with the Pomodoro technique/system.
task: buy milk
time: 25 seconds
time: 25 second
time: 25 secs
time: 25 sec
time: 25 s
time: 25 minutes
time: 25 minute
time: 25 mins
time: 25 min
time: 25 m
time: 25 hours
time: 25 hour
time: 25 hrs
time: 25 hr
time: 25 h
time: 25 days
time: 25 day
time: 25 dys
time: 25 dy
time: 25 d
## You may mix time durations
task: run
time: 25min 1 day
# Don't break the chain
# See: http://lifehacker.com/281626/jerry-seinfelds-productivity-secret
#
# Denote the date and time you previously touched on a task.
task: run
chain: May 2, 2016
chain: May 4, 2016
# You may attach multi-line notes
task: task with note
notes: Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Praesent faucibus lorem id nibh dictum pharetra.
Aenean sit amet pharetra velit. Sed ornare quam vel velit egestas fringilla.
Etiam feugiat quam justo.
## Notes need not be on the same line as `notes:`,
## and you may have blank lines in your notes
task: task with note
notes:
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Praesent faucibus lorem id nibh dictum pharetra.
Aenean sit amet pharetra velit. Sed ornare quam vel velit egestas fringilla.
Etiam feugiat quam justo.
#####
# Incubating features
#####
# multi-line task titles
# addition lines must begin with a whitespace
# DEV: no parser support yet
//task: buy milk
// and more milk
# assign a task with vanity IDs (whitespace trimmed)
# DEV: parser support exists
task: buy milk
id: buy-milk
# recurring tasks (wip)
# DEV: unsure how this pans out
#task: buy milk
#recur: 2 days