This isn't really an answer to your question, but I keep all my lectures for each course in a single file, then export subtrees when I need them. For me, this works well. I have recently started using a -dwim export scope based on Kaushal's org-hugo-export-dwim functions. But... I seem to have lost the code, drat! Anyway, I will write it up again sometime soon I hope. It's a conveinence function that looks for a an EXPORT_FILE property in the parents of the current subtree and chooses that as the export scope. I had written -- I think i a lost scratch buffer! -- versions for both reveal and my derived "huveal" backend which sends my slides to a website. On Thu, Nov 1, 2018 at 7:16 AM Nik Clayton wrote: > Hoi, > > What's the best way to process (ideally using the org-element API) a > collection of .org files as one larger file? > > I'm using Org + ox-reveal to write the course material for a three month > course. This is a lot of material, so keeping it in one Org file is not > practical (exporting it to the slides takes longer, it's easier to have > multiple buffers open and switch between them, etc). > > To help ensure that I'm covering the content in a sensible order I've > given each heading optional TOPIC and REQUIREMENTS properties. When a new > topic is introduced I add an identifier to the TOPIC property to the > heading that introduces it, and if a heading requires that a topic or > topics have been introduced I add the topic identifiers as a > space-separated string to the REQUIREMENTS property. > > I have a small function that uses the org-element API to iterate over all > the headings in a file and tell if if I have any headings that list a > requirement without that requirement appearing in a TOPIC property earlier > in the file. > > This works when the file is self contained. > > When I have topics that might be introduced in one file, and later > referenced in a second file, it obviously doesn't. > > I thought one approach would be to have a master Org file that references > all the others, so course.org that looks like: > > #+INCLUDE "day1.org" > #+INCLUDE "day2.org" > #+INCLUDE "day3.org" > ... > > However, org-element-parse-buffer doesn't recurse in to the included > files, so this doesn't work. > > I could write my own function to create the recursive expansion of all the > content, but before I do that I thought I'd check to see if there's a > better way of doing what I'm trying to achieve. > > Any ideas? > > N >