Hi Brett, Brett Viren <b...@bnl.gov> writes:
> Matt Lundin <m...@imapmail.org> writes: > >> Let's hope the real blog (when I get around to publishing it) is more >> interesting than the example above. ;) > > Maybe it would be more convenient to add the "meta-ness" you want as > part of a new exporter process? To change the "meta" wrappers for code block results, we would have to modify org babel (ob-core.el). Right now, the only wrapper that org babel uses to contain the results of *raw* org output is a :RESULTS: drawer. However, headlines wrapped in a drawer is something that org-element, by definition, cannot recognize. For the same reason, no custom export backend is going to be able to recognize this element. But I've discovered to my delight all this is moot. The *best and simplest solution* for automatically generating org headlines for export is... ...never to execute the source block by hand in org source file. That way, the results will appear only in the *temporary* copy of the buffer is parsed for export and one does need to worry about demarcating the output with a :RESULTS: drawer... --8<---------------cut here---------------start------------->8--- #+BEGIN_SRC perl :exports results :results output org raw [code to generate org source] #+END_SRC --8<---------------cut here---------------end--------------->8--- The above works perfectly so long I as resist the temptation to hit C-c C-c.[fn:1] And that can be solved easily by adding the following line to the top of the file: --8<---------------cut here---------------start------------->8--- # -*- org-babel-no-eval-on-ctrl-c-ctrl-c: t; -*- --8<---------------cut here---------------end--------------->8--- Isn't emacs wonderful? In short, it is much easier than I assumed to use babel blocks (and any language one wants) to generate org headlines destined for publishing. This is amazing! The applications are endless. E.g., I will use this to generate a blog summary when publishing my website. I'll post a tutorial sometime soon. Suffice it to say, one can easily use babel blocks to generate content on a web page, thus implementing the functionality of a static site generator like Jekyll, docpad, octopress, etc. (but with infinitely more flexibility). Best, Matt Footnotes: [fn:1] If one really needs to see the headlines in the original org buffer, a hook can be used to remove the :RESULTS: drawer. --8<---------------cut here---------------start------------->8--- (defun my-remove-stray-results-drawer (backend) (when (eq backend 'html) (while (re-search-forward "^\\s-*:RESULTS:\\s-*\n" nil t) (replace-match "")))) (add-hook 'org-export-before-parsing-hook 'my-remove-results-drawer) --8<---------------cut here---------------end--------------->8---