neorg
neorg copied to clipboard
Recurring tasks behavior
Issues
- [X] I have checked existing issues and there are no existing ones with the same request.
Feature description
Recurring tasks - [+]
, although part of the syntax, seems to be missing behavior expected from it. (carried over from this discussion)
The behavior, I as a user expect from this is that setting all children to done, should reset all children to undone.
- [+] Recurring task
-- [x] Sub task 1
-- [x] Sub task 2
-- [ ] Sub task 3
Setting Sub task 3
to done (i.e. all children are done), should reset it back to -
- [+] Recurring task
-- [ ] Sub task 1
-- [ ] Sub task 2
-- [ ] Sub task 3
In addition to this, not particularly my use-case but a list of timestamps of when all those tasks were completed, could also be helpful. Not sure if this should be an opt-in behavior behind a config flag or just be implemented separately? A list of timestamps however, can get pretty noisey on the page and take up a lot of space, so as an alternative, we can maintain a counter for how many times the recurring task was completed as an alternative.
Help
Yes
Implementation help
Will need confirmation on how exactly this feature should behave
this is planned but not implemented yet
We will include some special syntax for timestamp formatting once we release Neorg 0.1 with all its new nice syntax elements.
In general, a timestamp will look like this: <day>,? <day-of-month> <month> <year> <time> <timezone>
.
You will then be able to use this in two ways:
- as a link:
{@ <day>,? <day-of-month> <month> <year> <time> <timezone>}
- as a detached modifier extension (just like tasks), so you can do something like the following:
- |+|@ Monday| Recurring task
-- | | Sub task 1
-- | | Sub task 2
-- | | Sub task 3
We will include some special syntax for timestamp formatting once we release Neorg 0.1 with all its new nice syntax elements. In general, a timestamp will look like this:
<day>,? <day-of-month> <month> <year> <time> <timezone>
. You will then be able to use this in two ways:* as a link: `{@ <day>,? <day-of-month> <month> <year> <time> <timezone>}` * as a detached modifier extension (just like tasks), so you can do something like the following:
- |+|@ Monday| Recurring task -- | | Sub task 1 -- | | Sub task 2 -- | | Sub task 3
I would suggest to use ISO 8601/rfc3339 date-time format:
The following profile of ISO 8601 [ISO8601] dates SHOULD be used in new protocols on the Internet. This is specified using the syntax description notation defined in [ABNF].
date-fullyear = 4DIGIT
date-month = 2DIGIT ; 01-12
date-mday = 2DIGIT ; 01-28, 01-29, 01-30, 01-31 based on
; month/year
time-hour = 2DIGIT ; 00-23
time-minute = 2DIGIT ; 00-59
time-second = 2DIGIT ; 00-58, 00-59, 00-60 based on leap second
; rules
time-secfrac = "." 1*DIGIT
time-numoffset = ("+" / "-") time-hour ":" time-minute
time-offset = "Z" / time-numoffset
partial-time = time-hour ":" time-minute ":" time-second
[time-secfrac]
full-date = date-fullyear "-" date-month "-" date-mday
full-time = partial-time time-offset
date-time = full-date "T" full-time