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. 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. - 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.