Giter VIP home page Giter VIP logo

org-linker-edna's Introduction

org-linker-edna

Create org-edna dependencies (:TRIGGER: and :BLOCKER: properties)

Basic example

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:

  1. For referencing the headings, UUIDs were generated for both, source and destination.
  2. 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 to DONE (or CANCELLED).
  3. 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.

Installation

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-enda :repo "toshism/org-linker-edna" :fetcher github)
  :bind (("C-c s e" . org-linker-edna)) ;; follows org-super-link binding patterns

Notes

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.

Related Resources

  • 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 like org-linker-edna (at least to my knowledge)

Credits

Thanks to Karl Voit for the idea and direction.

License

GPLv3

org-linker-edna's People

Contributors

toshism avatar novoid avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.