Hi Jarmo,

1. I want to tangle to the default filename (derived from name of org
>    file and programming language). However, the :tangle header argument
>    only takes either "yes" or "filename." If the value is "yes", then
>    the filename is deduced automatically. How can I specify a tangling
>    directory and still have the default filename?
>
>    There was a related question on stack exchange, but it did not use
>    the default filename:
>
> https://emacs.stackexchange.com/questions/41806/org-babel-set-root-dir-for-tangled-files


You can specify a full path as the value of :tangle, but I don't know of a
way to specify only the directory.

As a workaround, you can also use emacs-lisp code as the value for :tangle,
so you could do something like this:

 :tangle (concat "/some/dir/" (file-name-base (file-name-sans-extension
(buffer-file-name))) ".ext")

3. Is it possible to tangle automatically on (every) export? I always
>    export, but I might forget to tangle, in which case export and tangle
>    would be out of sync.
>

I use the following hook to tangle on every save. I find it indispensable :)

  (add-hook 'org-mode-hook (lambda () (add-hook 'after-save-hook
'org-babel-tangle
                                   'run-at-end 'only-in-org-mode)))

Also, check out my free book "Literate Config", where I discuss some more
tips about Literate Programming: https://leanpub.com/lit-config/read

Hope this helps,
--Diego

Reply via email to