timewarrior/doc/dom.txt
2016-07-16 11:47:52 -04:00

68 lines
2.4 KiB
Text

DOM - Document Object Model
===========================
Timewarrior needs DOM support, so that it can service a 'get' command and
provide access to data and rules. Both are important for extensions.
Data to be Accessed
-------------------
Here are the data accessible via DOM references:
- Configuration
- Exclusions
- Command line args in raw form (for rules, not 'get')
Syntax
------
All DOM references have this form:
dom.<name>
Supported Names
---------------
dom.active --> 0/1 Boolean indicator that tracking is active
dom.active.tag.count --> N Number of active tags
dom.active.tag.1 --> 'tag' Active 1st tag
--- Raw Notes ---
Proposed:
dom.tags --> 14 Tag count
dom.tags.1 --> 'tag' First tag used
dom.tag.[1-3] --> 't1', 't2', 't3' First three tags
dom.tag.[1,2,3] --> 't1', 't2', 't3' First three tags
dom.tag.* --> 't1', ... 't14' All tags
dom.active.tag.1 --> 'tag' Active 1st tag
dom.active.start --> YYYYMMDDTHHMMSSZ Active start time
dom.active.duration --> PT1H25M8S Active elapsed
dom.tracked.year --> 231 Quantity this year
dom.tracked.quarter --> 64 Quantity this quarter
dom.tracked.month --> 21 Quantity this month
dom.tracked.week --> 6 Quantity this week
dom.tracked.today --> 2 Quantity today
dom.tracked.@1 --> {...} 1st interval today JSON
dom.tracked.@1.start --> YYYYMMDDTHHMMSSZ 1st interval today start
dom.tracked.@1.end --> YYYYMMDDTHHMMSSZ 1st interval today end
dom.tracked.@1.tags --> 1 1st interval today tag count
dom.tracked.@1.tag.1 --> 'tag1' 1st interval today tag
dom.tracked.@1.duration --> P1H25M8S 1st interval today duration
dom.gap.today
...
rc.<name>
- The above does not support totals, as this would turn DOM references into a
query language. Instead, a 'sum' command could do this. The rules.txt doc
already mentions built-in functions.