[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] scratch/org-edna b40f7f0 05/72: Added initial documentation
From: |
Ian Dunn |
Subject: |
[elpa] scratch/org-edna b40f7f0 05/72: Added initial documentation |
Date: |
Sun, 21 May 2017 21:11:18 -0400 (EDT) |
branch: scratch/org-edna
commit b40f7f08ef1ada058d0d510063273e4682a3e688
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] scratch/org-edna 6ec67b8 10/72: Improved org-bat-parse-form to handle new argument types, (continued)
- [elpa] scratch/org-edna 6ec67b8 10/72: Improved org-bat-parse-form to handle new argument types, Ian Dunn, 2017/05/21
- [elpa] scratch/org-edna 8b58c07 14/72: Clarified use of case-fold-search in `org-bat--handle-planning', Ian Dunn, 2017/05/21
- [elpa] scratch/org-edna 00ef89a 11/72: Added tests for org-bat-parse-form, Ian Dunn, 2017/05/21
- [elpa] scratch/org-edna 8aeb66c 08/72: Added more custom IDs to documentation, Ian Dunn, 2017/05/21
- [elpa] scratch/org-edna 89baba4 13/72: Added chain action, Ian Dunn, 2017/05/21
- [elpa] scratch/org-edna e2db4dc 19/72: Remove duplicate targets, Ian Dunn, 2017/05/21
- [elpa] scratch/org-edna 68b01b8 16/72: Fixed bug in Makefile, Ian Dunn, 2017/05/21
- [elpa] scratch/org-edna dc320fe 17/72: Use existing org-xor instead of new function, Ian Dunn, 2017/05/21
- [elpa] scratch/org-edna 0977b83 20/72: Don't assume arguments will be symbols or strings, Ian Dunn, 2017/05/21
- [elpa] scratch/org-edna 8a8cfd6 12/72: Cleaned up condition handling, Ian Dunn, 2017/05/21
- [elpa] scratch/org-edna b40f7f0 05/72: Added initial documentation,
Ian Dunn <=
- [elpa] scratch/org-edna 4a54e3b 09/72: Fixed headings condition, Ian Dunn, 2017/05/21
- [elpa] scratch/org-edna dcbb344 18/72: Fixed up indenting, Ian Dunn, 2017/05/21
- [elpa] scratch/org-edna ef34291 26/72: Fixed chain-find, Ian Dunn, 2017/05/21
- [elpa] scratch/org-edna 6cd8a40 28/72: Added test for parsing multiple forms, Ian Dunn, 2017/05/21
- [elpa] scratch/org-edna 3e1ed0c 29/72: Added re-search condition, Ian Dunn, 2017/05/21
- [elpa] scratch/org-edna c49aeba 36/72: Fixed consideration handling, Ian Dunn, 2017/05/21
- [elpa] scratch/org-edna 1dfc66f 01/72: Initial Commit., Ian Dunn, 2017/05/21
- [elpa] scratch/org-edna f05cf5e 23/72: Created finders for compatibility with org-depend, Ian Dunn, 2017/05/21
- [elpa] scratch/org-edna e8fc9d5 33/72: Added test for todo action, Ian Dunn, 2017/05/21
- [elpa] scratch/org-edna 70f949c 35/72: Added note about quoting file names to documentation., Ian Dunn, 2017/05/21