#+title: org-auto-tangle #+author: Yilkal Argaw This package (i.e org-auto-tangle) is a very simple emacs package that allows you to automatically tangle org files on save. This is done by adding the option ~#+auto_tangle: t~ in your org file. The tangling process happens asynchronously so it will not block your emacs session. * USAGE Simply require the package in you emacs init and hook it into org-mode. #+begin_src emacs-lisp (require 'org-auto-tangle) (add-hook 'org-src-mode-hook 'org-auto-tangle-mode) #+end_src or you can use use-package #+begin_src emacs-lisp (use-package org-auto-tangle :load-path "site-lisp/org-auto-tangle/" ;; this line is necessary only if you cloned the repo in your site-lisp directory :defer t :hook (org-src-mode . org-auto-tangle-mode)) #+end_src If the minor mode is on, it will try to automatically tangle your org files if they contain a non nil value for the ~#+auto_tangle:~ option. You can configure auto-tangle as the default behavior for all org buffers by setting the ~org-auto-tangle-default~ variable to ~t~. In this case, you can disable it for some buffers by setting the ~#+auto_tangle:~ option to ~nil~. The ~#+auto_tangle:~ option may also be used to specify variables that should be preserved in the asynchronous tangling process. For example, if you have installed a newer version of ~org-mode~ or additional Babel processors, using #+begin_src org #+auto_tangle: vars:load-path #+end_src will be sure that they are available during tangling. The ~vars~ option takes a colon-separated list so multiple variables may be specified #+begin_src org #+auto_tangle: vars:calendar-longitude:calendar-latitude:calendar-location-name #+end_src It is also possible to disable auto-tangling by adding the ~nil~ option to the line without removing any ~vars~ list. #+begin_src org #+auto_tangle: vars:load-path nil #+end_src * Babel Auto Tangle Safelist Add a list of files to the safelist to autotangle with noweb evaluation #+begin_src emacs-lisp (setq org-auto-tangle-babel-safelist '( "~/system.org" "~/test.org" )) #+end_src * License This package (i.e. ~org-auto-tangle~) is licensed under the the 2-Clause BSD License.