[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master 5010097 005/135: Added initial documentation
From: |
Ian Dunn |
Subject: |
[elpa] master 5010097 005/135: Added initial documentation |
Date: |
Mon, 17 Feb 2020 10:52:42 -0500 (EST) |
branch: master
commit 5010097011aee4862605d36afd31c11e9cddca62
Author: Ian D <address@hidden>
Commit: Ian D <address@hidden>
Added initial documentation
---
README.org | 300 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 300 insertions(+)
diff --git a/README.org b/README.org
new file mode 100644
index 0000000..246b62c
--- /dev/null
+++ b/README.org
@@ -0,0 +1,300 @@
+#+TITLE: Paced
+#+AUTHOR: Ian Dunn
+#+EMAIL: address@hidden
+
+* Copying
+Copyright (C) 2017 Ian Dunn
+
+#+BEGIN_QUOTE
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+#+END_QUOTE
+* Introduction
+:PROPERTIES:
+:CUSTOM_ID: introduction
+:END:
+:TODO:
+- [ ] *Explain how this will make peoples' lives easier*
+- [ ] Stick with one of heading, headline, or entry; don't keep switching
between them
+:END:
+
+Org Blockers and Triggers (BAT) is an extensible means of specifying blocking
+conditions and trigger actions for Org headlines.
+
+Org BAT runs when either the BLOCKER or TRIGGER properties are set on a
+headline, and when it is changing from a TODO state to a DONE state.
+
+For brevity, we use TODO state to indicate any state in
~org-not-done-keywords~,
+and DONE state to indicate any state in ~org-done-keywords~.
+
+** Basic Operation
+:PROPERTIES:
+:CUSTOM_ID: operation
+:END:
+Explain targets, actions, conditions
+** Blockers
+:PROPERTIES:
+:CUSTOM_ID: blockers
+:END:
+A blocker indicates conditions which must be met in order for a headline to be
+marked as DONE. Typically, this will be a list of headlines that must be
marked
+as DONE.
+** Triggers
+:PROPERTIES:
+:CUSTOM_ID: triggers
+:END:
+A trigger is an action triggered by setting a headline to DONE.
+* Basic Features
+:PROPERTIES:
+:CUSTOM_ID: basic
+:END:
+** Finders
+A finder specifies locations from which to test conditions or perform actions.
+These locations are referred to as "targets".
+*** ancestors
+:PROPERTIES:
+:DESCRIPTION: Find a list of ancestors
+:CUSTOM_ID: ancestors
+:END:
+
+The ~ancestors~ finder returns a list of the current headline's ancestors.
+
+For example:
+
+#+BEGIN_SRC org
+,* TODO Heading 1
+,** TODO Heading 2
+,** TODO Heading 3
+,*** TODO Heading 4
+,**** TODO Heading 5
+ :PROPERTIES:
+ :BLOCKER: ancestors
+ :END:
+#+END_SRC
+
+In the above example, "Heading 5" will be blocked until "Heading 1", "Heading
+3", and "Heading 4" are marked "DONE", while "Heading 2" is ignored.
+*** children
+:PROPERTIES:
+:DESCRIPTION: Find all immediate children
+:CUSTOM_ID: children
+:END:
+The ~children~ finder returns a list of the *immediate* children of the current
+headline.
+
+In order to get all levels of children of the current headline, use the
+[[#descendants][descendants]] keyword instead.
+
+*** TODO descendants
+:PROPERTIES:
+:DESCRIPTION: Find all descendants
+:CUSTOM_ID: descendants
+:END:
+
+The ~descendants~ finder returns a list of all descendants of the current
+headline.
+
+EXAMPLE HERE
+
+*** file
+:PROPERTIES:
+:CUSTOM_ID: file
+:DESCRIPTION: Find a file by name
+:END:
+
+The ~file~ finder finds a single file. The returned target will be the minimum
+point in the file.
+
+Note that with the default condition, ~file~ won't work. See
[[#conditions][conditions]] for how
+to set a different condition. For example:
+
+#+BEGIN_SRC org
+,* TODO Test
+ :PROPERTIES:
+ :BLOCKER: file("~/myfile.org") headings
+ :END:
+#+END_SRC
+
+Here, "Test" will block until myfile.org is clear of headings.
+
+*** first-child
+:PROPERTIES:
+:CUSTOM_ID: first-child
+:DESCRIPTION: Find the first child of a headline
+:END:
+
+The ~first-child~ finder returns the first child of a headline, if any.
+
+*** ids
+:PROPERTIES:
+:DESCRIPTION: Find a list of headlines with given IDs
+:CUSTOM_ID: ids
+:END:
+
+The ~ids~ finder will search for headlines with given IDs, using ~org-id~. Any
+number of UUIDs may be specified. For example:
+
+#+BEGIN_SRC org
+,* TODO Test
+ :PROPERTIES:
+ :BLOCKER:
ids(62209a9a-c63b-45ef-b8a8-12e47a9ceed9,6dbd7921-a25c-4e20-b035-365677e00f30)
+ :END:
+#+END_SRC
+
+Here, "Test" will block until the headline with ID
+62209a9a-c63b-45ef-b8a8-12e47a9ceed9 and the headline with ID
+6dbd7921-a25c-4e20-b035-365677e00f30 are set to "DONE".
+
+*** match
+:PROPERTIES:
+:CUSTOM_ID: match
+:DESCRIPTION: Good old tag matching
+:END:
+
+The ~match~ keyword will take any arguments that ~org-map-entries~ usually
takes.
+In fact, the arguments to ~match~ are passed straight into ~org-map-entries~.
+
+#+BEGIN_SRC org
+,* TODO Test
+ :PROPERTIES:
+ :BLOCKER: match(test&mine,agenda)
+ :END:
+#+END_SRC
+
+"Test" will block until all entries tagged "test" and "mine" in the agenda
files
+are marked DONE.
+
+See the documentation for ~org-map-entries~ for a full explanation of the first
+argument.
+
+*** next-sibling
+:PROPERTIES:
+:CUSTOM_ID: next-sibling
+:END:
+*** olp
+:PROPERTIES:
+:CUSTOM_ID: olp
+:END:
+*** org-file
+:PROPERTIES:
+:CUSTOM_ID: org-file
+:END:
+*** parent
+:PROPERTIES:
+:CUSTOM_ID: parent
+:END:
+*** previous-sibling
+:PROPERTIES:
+:CUSTOM_ID: previous-sibling
+:END:
+*** self
+:PROPERTIES:
+:CUSTOM_ID: self
+:END:
+*** siblings
+:PROPERTIES:
+:CUSTOM_ID: siblings
+:END:
+** Actions
+Once BAT has collected its targets for a trigger, it will perform actions on
+them.
+*** Scheduled/Deadline
+PLANNING(WKDY[ TIME]) -> Set PLANNING to following weekday WKDY at TIME
+PLANNING(rm|remove) -> Remove PLANNING info
+PLANNING([copy|cp]) -> Copy timestamp verbatim
+PLANNING([+|-][+|-]NTHING) -> Increment(+) or decrement(-) source (double) or
current (single) PLANNING by N THINGs
+
+PLANNING is either scheduled or deadline
+
+WKDY is a weekday or weekday abbreviation (see org-read-date)
+
+TIME is a time string HH:MM, etc.
+
+N is an integer
+
+THING is one of y (years), m (months), d (days), h (hours), or M (minutes)
+
+Examples:
+
+scheduled(Mon 09:00) -> Set SCHEDULED to the following Monday at 9:00
+*** Todo State
+todo(NEW-STATE)
+
+Sets the TODO state of the target headline to NEW-STATE.
+*** archive
+*** set-property
+*** set-priority
+*** clock-in
+*** clock-out
+*** tag
+*** set-effort
+* Advanced Features
+:PROPERTIES:
+:CUSTOM_ID: advanced
+:END:
+** Conditions
+:PROPERTIES:
+:CUSTOM_ID: conditions
+:END:
+
+BAT gives you he option to specify *blocking conditions*. Each condition is
check
+for each of the specified targets; if one of the conditions returns true for
+that target, then
+
+*** done
+*** headings
+*** todo-state
+*** variable-set
+*** Negating Conditions
+You can also negate a condition using '!'.
+
+#+BEGIN_EXAMPLE
+match(test) !hasProperty(PROP,1)
+#+END_EXAMPLE
+
+The above example will cause the current headline to block if any headline
+tagged "test" does *not* have the property PROP set to 1.
+** Consideration
+Special keyword that's only valid for blockers.
+
+This keyword can allow specifying only a portion of tasks to consider:
+
+1. consider(PERCENT)
+2. consider(NUMBER)
+3. consider(all) (Default)
+
+(1) tells the blocker to only consider some portion of the targets. If at
least PERCENT of
+them are in a DONE state, allow the task to be set to DONE. PERCENT must be a
decimal.
+
+(2) tells the blocker to only consider NUMBER of the targets.
+
+(3) tells the blocker to consider all following targets.
+
+A consideration must be specified before the targets to which it applies:
+
+#+BEGIN_QUOTE
+consider(0.5) siblings consider(all) match(find_me)
+#+END_QUOTE
+
+The above code will allow task completion if at least half the siblings are
+complete, and all tasks tagged "find_me" are complete.
+
+#+BEGIN_QUOTE
+consider(1) ids(ID1,ID2,ID3) consider(2) ids(ID3,ID4,ID5,ID6)
+#+END_QUOTE
+
+The above code will allow task completion if at least one of ID1, ID2, and ID3
+are complete, and at least two of ID3, ID4, ID5, and ID6 are complete.
+
+If no consideration is given, ALL is assumed.
+* Extending BAT
- [elpa] master updated (487ad1b -> bf8ecda), Ian Dunn, 2020/02/17
- [elpa] master 567e982 007/135: Added package requirements, Ian Dunn, 2020/02/17
- [elpa] master a943aa6 008/135: Added more custom IDs to documentation, Ian Dunn, 2020/02/17
- [elpa] master 21d2019 006/135: Added has-property condition, Ian Dunn, 2020/02/17
- [elpa] master 0e5fd41 004/135: Added .bzrignore., Ian Dunn, 2020/02/17
- [elpa] master 3a4cca9 003/135: Added Makefile., Ian Dunn, 2020/02/17
- [elpa] master 01c50c0 002/135: Make all finders return lists of markers, Ian Dunn, 2020/02/17
- [elpa] master 5010097 005/135: Added initial documentation,
Ian Dunn <=
- [elpa] master 18814ca 001/135: Initial Commit., Ian Dunn, 2020/02/17
- [elpa] master 1fb6dcf 013/135: Added chain action, Ian Dunn, 2020/02/17
- [elpa] master ad75461 017/135: Use existing org-xor instead of new function, Ian Dunn, 2020/02/17
- [elpa] master adbff7e 019/135: Remove duplicate targets, Ian Dunn, 2020/02/17
- [elpa] master 6886b8a 026/135: Fixed chain-find, Ian Dunn, 2020/02/17
- [elpa] master 55283ff 015/135: Renamed to Org-Edna., Ian Dunn, 2020/02/17
- [elpa] master d348102 025/135: Added file for tests, Ian Dunn, 2020/02/17
- [elpa] master 71cdc0a 027/135: Fixed parsing bug, Ian Dunn, 2020/02/17
- [elpa] master 6b9a676 031/135: Added documentation for each condition, Ian Dunn, 2020/02/17
- [elpa] master 71e00e4 036/135: Fixed consideration handling, Ian Dunn, 2020/02/17