todotools README
May 25, 2022 ยท View on GitHub
The todotools extension adds some task list management shortcuts for TaskPaper documents.
Features
Settings
Along with the settings at the User or Workspace level, this app allows each taskpaper document to have its own settings section. To override one or more settings per-document, create a top-level section called Settings and populate it with note nodes (that is, without any task prefix like - or *) with any of the following key-value pairs:
Settings:
autoRun=true
runOnOpen=false
archiveDoneItems=true
sortByDueDate=true
recurringItemsAdjacent=true
autoRunInterval=15
overdueSection=TRUE
Copy Daily Tasks to Today : This task will copy any completed tasks with certain tags back into the "Today" section, unless they are already there. This allows you to create daily, monthly, or annual tasks (e.g. "Feed the cat") without having to re-type them.
Current Development Path
Items have flags that set their recurrence patterns.
- item #0 @due(today) # tokens in @due processed: today, tomorrow, day-of-week, yesterday
- item #1 @recur(2) # add @due => today + 2
- item #2 @recur(2) @due(anything) # No change.
- item #3 @done(2020-01-03) @recur(2) # new adjacent node created with @due=@done+2, @done removed, @recur/started/lasted removed
- item #4 @done(2020-01-03) @annual(11/1) # new adjacent node created with @due=next 11/1 after @done, @done removed, @recur/started/lasted removed
- item #5 @annual(11/1) @due(anything) # no change
- item #6 @annual(11/1) @done(1/3/2020) # add adjacent @due => next 11/1 after @done; @annual removed
- item #7 @annual(11/1) # add @due => next 11/1 after today
- item #8 @recur(Monday) @due(anything) # no change
- item #9 @recur(Monday) @done(1/3) # add adjacent node @due => next Monday after @done; @weekly removed
- item #10 @recur(Monday) # add @due => next Monday
Items are processed in this order:
- All items 0-10 are processed; new items accumulator is created.
- New adjacent items inserted from the highest line index to the lowest
- Items not in Today where @due <= today are moved to Today
- Items in Today where @due >= today are moved to Future (if recurringItemsAdjacent=false)
- Items not in Archive where @done have @project set, @recur removed, moved to Archive (if archiveDoneItems=true)
- All projects except archive are sorted by @due (if sortByDueDate=true)
Extension Settings
For now, this process only runs if there is a Settings project with this format:
autoRun=true
None in the settings file at the moment.
Development Pathway
- Change command name to more generic name, like, updateRecurringTasks or something