79 lines
2.4 KiB
Org Mode
79 lines
2.4 KiB
Org Mode
#+title: org-auto-tangle
|
|
#+author: Yilkal Argaw
|
|
#+maintainer: Ionut Adrian Ciolan
|
|
|
|
Original documentation of Yilkal Argaw. Just replace org-auto-tangle with iadrian-org-auto-tangle.
|
|
|
|
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.
|
|
|