1
votes

I can use the org-babel-tangle to tangle the current file. I was wondering if you could have org export tangle all the code blocks in the org file.

thanks EA

3

3 Answers

0
votes

I do this to export my elisp source blocks to specific files

#+BEGIN_SRC emacs-lisp :tangle lisp-file.el
  (message "Hello lisp-file")
#+END_SRC

I think you can also set this as a property, so you could set properties at the node/tree level.

0
votes

I would do it like this:

* build :noexport:
#+BEGIN_SRC emacs-lisp
(org-babel-tangle)
(org-latex-export-as-latex)
#+END_SRC

Then just type C-c C-c in the code block to tangle, then export. You can change the export command to whatever you want for other export types.

0
votes

This runs org-babel-tangle when exporting:

#+NAME: tangle-it
#+BEGIN_SRC emacs-lisp :exports none
  (org-babel-tangle)
#+END_SRC

#+BEGIN_SRC text :results silent :noweb yes :exports results
  <<tangle-it()>>
#+END_SRC

#+BEGIN_SRC css :tangle test.css
  body {
    font-size: 12px;
  }
#+END_SRC

It doesn't work when using it with #+CALL: tangle-it().

It is also possible to do this with a macro:

#+MACRO: tangle-it (eval (progn (org-babel-tangle) ""))
{{{tangle-it()}}}
#+BEGIN_SRC css :tangle test.css
  body {
    font-size: 12px;
  }
#+END_SRC