I think the way to do this is to use a function in
org-export-before-processing-hook to add it if you don't find it.

you can still use org-ml to generate the string that gets inserted. I guess
you would just go to the end of the buffer and insert it.

John

-----------------------------------
Professor John Kitchin (he/him/his)
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
@johnkitchin
http://kitchingroup.cheme.cmu.edu



On Fri, Jul 30, 2021 at 8:18 PM Matt Price <mopto...@gmail.com> wrote:

> Goal:
> conditionally add a headline with content to parse tree using either
> org-export-before-parsing-hook or org-export-filter-parse-tree-functions
>
> Explanation:
> I use org-re-reveal to make lecture slides from subtrees. Often I forget
> to add a heading with #+print_bibliography: and as a result org-cite does
> not generate the bibliography, and my citations are not wrapped in links.
> I'd like to search *either* the parse tree  *or* the temporary export
> buffer for the #+print_bibliography keyword, and if it's not found, add a
> headline to the end of the subtree/parse-tree with the appropriate
> information.
>
> I can easily generate the proper lisp object with the org-ml package:
>
> (org-ml-build-headline :title '("Sources")
>                        (org-ml-build-section
>                         (org-ml-build-property-drawer
>                          (org-ml-build-node-property "CUSTOM_ID"
> "bibliography"))
>                         (org-ml-build-keyword "print_bibliography" "" )
>                         ))
>
> And if I want I can turn that into a string by wrapping it in
> (org-ml-to-trimmed-string ...)
>
> However, I'm not sure how best to add it to the exported data.  I believe
> I can add a function to either org-export-before-parsing-hook or
> org-export-filter-parse-tree-functions, but beyond that I'm a bit lost.
> It's not immediately obvious how to find the last headline and append
> another headline after that headline's section. Looking at the nesting
> confuses me somewhat and I'm afraid I'll break the data structure.
>
> Has anyone done something like this before and do you have ideas?
>
> Thank you!
>

Reply via email to