org-project icon indicating copy to clipboard operation
org-project copied to clipboard

Capture TODOs for project using org-mode

~org-project~ provides functions for the creation of [[http://orgmode.org/][org-mode]] TODOs that are associated with [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Projects.html][Emacs projects]].

This package is originally forked from and now heavily based on [[https://github.com/IvanMalison/org-projectile][org-projectile]].

  • Installation Installation from MELPA should be shortly available.

  • Setup Before using org-project, you must specify the file you would like to use for storing projects =TODOs=. You may also wish to bind keys to =org-project= function in ~project-prefix-map~. It is recommended that you start with the following configuration:

#+BEGIN_SRC emacs-lisp (use-package org-project :straight (org-project :type git :host github :repo "delehef/org-project")) #+end_src

** Example Configuration #+begin_src emacs-lisp (use-package org-project :straight (org-project :type git :host github :repo "delehef/org-project") :custom ;; If invoked outside of a project, prompt for a valid project to capture for (org-project-prompt-for-project t)

;; Store all TODOs in a ORG_DIRECTORY/project.org
(org-project-todos-per-project nil)
(org-project-todos-file (concat org-directory "/projects.org"))

;; Or use a single file per project, PROJECT_ROOT/todos.org
;; (org-project-todos-per-project t)
;; (org-project-per-project-file "todos.org")

;; Use custom capture templates
(org-project-capture-template "* TODO %?\n%t\n") ;; Ask for a TODO and a date
(org-project-quick-capture-template "* TODO %? %(org-insert-time-stamp (org-read-date nil t \"+2d\"))\n") ;; Quick TODOs ae scheduled in two days

;; Add some binding for org-project in project.el map
:bind (:map project-prefix-map
            ("t" . org-project-quick-capture)
            ("T" . org-project-capture)
            ("o" . org-project-open-todos)))

#+end_src

  • Provided Functions ** ~org-project-capture~ Triggers ~org-capture~ using the template provided in ~org-project-capture-template~.

** ~org-project-quick-capture~ Prompts for a simple TODO, that is then captured using ~org-project-quick-capture-template~.

** ~org-project-open-todos~ Jump to the org-mode heading containing the TODOs for the current project.

All of these functions will create the relevant top level heading in the [[http://orgmode.org/][org-mode]] file stored in ~org-project-projects-file~ if ~org-project-per-project-file~ is ~nil~, or in ~org-project-todos-per-project~ under the project root if it is ~t~.