Hello Michael, Michael Weylandt wrote: >> On Nov 13, 2014, at 10:54 AM, Michael Weylandt <michael.weyla...@gmail.com> >> wrote: >> >> Is it possible to have certain blocks tangled as part of export so >> that they are available as input files to later source blocks? >> >> E.g., >> >> #+BEGIN_SRC python :tangle hello.py >> print "Hello World" >> #+END_SRC >> >> #+BEGIN_SRC sh >> python hello.py >> #+END_SRC >> >> If I tangle before running, then the second code block will work; >> else, it fails because 'hello.py' is not found. [1] >> >> I can run tangle and export in a row (and I have my own function to >> do just that) but is there a native org way to do so? > > Adding org-babel-tangle to the org-export-before-processing-hook does > the job, but I'd still be interested in knowing if there's a more > official method.
For such a work, I'm using this home-made function: --8<---------------cut here---------------start------------->8--- (with-eval-after-load "org" (defun org-save-buffer-and-do-related () "Save buffer, execute/tangle code blocks, and export to HTML/PDF." (interactive) (let* ((orgfile (buffer-file-name)) (base-name (file-name-base orgfile)) (htmlfile (concat base-name ".html")) (pdffile (concat base-name ".pdf"))) (save-buffer) ; See other commands in ; `before-save-hook': ; `org-update-all-dblocks' ; `org-table-iterate-buffer-tables'. (when (derived-mode-p 'org-mode) ;; (org-babel-execute-buffer) ; XXX Why should we execute all code blocks? (let ((before-save-hook nil)) (save-buffer)) (org-babel-tangle) (when (file-exists-p htmlfile) (if (file-newer-than-file-p orgfile htmlfile) (org-html-export-to-html) (message "HTML is up to date with Org file"))) (when (file-exists-p pdffile) (if (file-newer-than-file-p orgfile pdffile) (if (string-match "^#\\+BEAMER_THEME: " (buffer-string)) (org-beamer-export-to-pdf) (org-latex-export-to-pdf)) (message "PDF is up to date with Org file"))) (beep)))) (define-key org-mode-map (kbd "<f9>") 'org-save-buffer-and-do-related)) --8<---------------cut here---------------end--------------->8--- Best regards, Fabrice -- Fabrice Niessen Leuven, Belgium http://www.pirilampo.org/