Releases: VladimirMarkelov/ttdl
Regression fix
Fixed range filter for due dates(#54)
Exclusion filter
- All ranges are now exclusive ones as the documentation states. Before the fix, ranges with
none
as one end were non-exclusive ones - Support tag
h
to hide any todo from the output. If value of the tag is not0
, the todo is excluded from all operations (except auto-compelete functions) - Added a way to exclude todos what contains certain projects, contexts or tags from the list. Prepend
-
to a value to mark it as an exclusion.
Tag revamp
- all ranges with "none" are now inclusive. It was stated in docs but it worked as if the range was not inclusive
- introduces new tag
h
. If its value is not0
, the task is hidden. See detail in docs, in the section about tags.
Replace todotxt library
Replacing the library brings some advantages. As well as a few incompatibilities with the previous release:
- Now project and context names are case-sensitive
- All tags are preserved in a todo's subject (they were appended to the subject in the previous library)
- Todo completion follows strict flag('+' character before a recurrence - e.g, "rec:+1m"): if strict flag is present, the next date is recurrence plus due date, otherwise recurrence plus the current date
- A tag cannot have empty value. Setting empty value to a tag removes the tag from the subject completely
- If a todo's text starts with two dates, and the todo is incomplete, only the first is parsed as creation date, and the rest goes to subject
Stable release
Changes:
list
command supports filtering by tags- new command-line options to filter by
--project
(in addition to argument starting with+
),--context
(in addition to argument starting with@
), and--tag
- strict mode(disabled by defauit, enabled via configuration or
--strict
option): if a command line contains any free arguments, the first one must be a command. The mode is added for people who does not want to create undesirable todos when making a typo or alike. E.g, in strict modettdl rrm 16
raises and error, while in default mode TTDL adds a new todo with textrrm 16
.
Filter improvement
- Filter for all date fields(due,created.completed,threshold) works the same
- Fixed bug: duplicated CLI option
completed
resulted in the errorinvalid date range
when filtering by-completed
date - Old CLI option
-A/--completed
now-A/--only-completed
,--completed
is used only to filter by a date range
Date range improvement
Allow using none
in ranges:
ttdl list --due none
- show todos with undefined due datettdl list --due none..tomorrow
- show todos that are overdue, due today or tomorrow, and with empty due datettdl list --due tomorrow..none
- show todos that are due tomorrow or further in the future, and with empty due date
Feature release (a bit improved ranges)
Date ranges now support soon
, -soon
- they equal to either ranges.soon
in configuration or 7
(in the case when the soon 0
or missing in the configuration); and overdue
that can be only positive and means "a long time ago". overdue
is added only for consistency: all ranges with overdue
can be simulated with open ranges(e.g, overdue..today
is the same as ..today
). The only difference between open ranges and ranges with overdue
is that the overdue
-based ranges can have overdue
at the any end keeping the same meaning (e.g, overdue..today
and today..overdue
display the same list, thanks to TTDL detects which end comes earlier; while ..today
and today..
displays different lists).
Date range requests
Feature: From version 0.10.0 some commands(list
, edit
, done
, and few more) support date range filter for creation
, finish
, due
, and threshold
dates.:
- a single day:
ttdl list --due=today
(only due today) orttdl list --due=3d
(only due exactly in three days). See docs for more examples and list of "special" words liketoday
,tomorrow
etc - all since a given day
ttdl list --created=1w..
(show todos that are 1 week old or newer) - all up to a given day
ttdl list --due=..tomorrow
(show all overdue, due today, and tomorrow in one list) - all withing a date range
ttdl list -a --finished=-monday..friday
(show all todos that are completed this week: fromlast
Monday tonext
Sunday)
Fix
- TTDL regards
range.soon
option from its config when executingttdl list --due soon
(before this it always showed todos due in a week)
Human-friendly due dates
- When adding or editing a todo, due and threshold dates accept relative dates and shortcuts:
- single number - day of the current or next month
- number-number - month and day of month of the current or next year
- relative values like
15d
,1w
,1m
,1y
, or any combination of them3d1w
,1w1m
etc today
andtomorrow
- day of week
- By default columns
Threshold
andSpent
are hidden to make more room for a description in the output