Create org-edna dependencies (:TRIGGER:
and :BLOCKER:
properties)
Here is an example on the basic functionality of org-linker-edna
.
Consider these two Org mode headings:
** STARTED Cleaning my desk
:
** Make my desk messy again
They do have a natural dependency: it is required to have a clean desk in order to be able to mess it up again.
Therefore, you can define a dependency such as cleaning up the desk is
required to be set to DONE
before being messy can be set to DONE
.
With org-edna
, you do have two possibilities that may be applied in
this example: TRIGGER
and BLOCKER
properties. This would require
manual effort from you to create the corresponding properties within
the drawers. And this is what org-linker-edna
is able to do for you
on your fingertips.
By invoking M-x org-linker-edna
(or binding it to a keyboard
shortcut), you can get the following result:
** STARTED Cleaning my desk :PROPERTIES: :ID: ac3da9ff-1069-40ee-8aba-74734a64b820 :TRIGGER: ids(0f99de80-8592-4a5e-8cf8-5d27f23c1d8c) todo!(TODO) scheduled!("++1d") :END:
:
** Make my desk messy again :PROPERTIES: :ID: 0f99de80-8592-4a5e-8cf8-5d27f23c1d8c :BLOCKER: ids(ac3da9ff-1069-40ee-8aba-74734a64b820) :END:
As you can see, there are several things which were done for you. By
selecting a followup-status (TODO
) and a scheduled day (++1d
for
the next day), the “get messy again”-task now has its dependency
defined:
- For referencing the headings, UUIDs were generated for both, source and destination.
- The cleaner task got extended by a property which sets the messy
task to
TODO
and schedules it for the next day as soon as the clean-up task gets set toDONE
(orCANCELLED
). - The “get back to my usual mess”-task gets a
BLOCKER
property set.- While this is somehow redundant, you get a bi-directional dependency with a “back-link”.
- With this feature request, you will maybe get navigable Org mode links.
As you can see clearly, org-linker-edna
helps you to minimize
manual effort for creating dependencies.
Please do install org-linker beforehand because org-linker-edna
is
using its functionality.
Using quelpa makes it easy to install org-linker-edna
. Example basic
configuration including org-linker
.
(use-package org-linker
:quelpa (org-linker :repo "toshism/org-linker" :fetcher github))
(use-package org-linker-edna
:quelpa (org-linker-edna :repo "toshism/org-linker-edna" :fetcher github)
:bind (("C-c s e" . org-linker-edna)) ;; follows org-super-link binding patterns
This is still alpha at best. It works to some degree but is still in the experimental stage. Try it out and let me know what issues you have or what you would like to see here.
- org-linker which is the general foundation of
org-linker-edna
- org-super-links an independent package to create Org mode links to headings with auto-backlinks
- This blog article that drafts an example workflow for Org mode with advanced usage of dependencies
- org-depend: a much simpler alternative to
org-edna
which does not have a corresponding tool likeorg-linker-edna
(at least to my knowledge)
Thanks to Karl Voit for the idea and direction.