From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Price Subject: Re: Best way to process a collection of .org files as one? Date: Thu, 1 Nov 2018 09:34:17 -0400 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="000000000000a47f1a05799a78b6" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:52803) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gID6q-0007W0-C2 for emacs-orgmode@gnu.org; Thu, 01 Nov 2018 09:34:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gID6p-0004ze-2r for emacs-orgmode@gnu.org; Thu, 01 Nov 2018 09:34:04 -0400 Received: from mail-it1-x12c.google.com ([2607:f8b0:4864:20::12c]:40323) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gID6n-0004xO-5J for emacs-orgmode@gnu.org; Thu, 01 Nov 2018 09:34:01 -0400 Received: by mail-it1-x12c.google.com with SMTP id i191-v6so1994411iti.5 for ; Thu, 01 Nov 2018 06:34:00 -0700 (PDT) In-Reply-To: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: nik@ngo.org.uk Cc: Org Mode --000000000000a47f1a05799a78b6 Content-Type: text/plain; charset="UTF-8" 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 > --000000000000a47f1a05799a78b6 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
This isn't really an answer to your question, but I ke= ep all my lectures for each course in a single file, then export subtrees w= hen I need them. For me, this works well. =C2=A0 I have recently started us= ing a -dwim export scope based on Kaushal's org-hugo-export-dwim functi= ons.=C2=A0 But... I seem to have lost the code, drat!=C2=A0 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 sub= tree and chooses that as the export scope. I had written -- I think i a los= t scratch buffer! -- versions for both reveal and my derived "huveal&q= uot; backend which sends my slides to a website.=C2=A0

On Thu, Nov 1, 2018 at 7:16 AM Nik Cl= ayton <nik@ngo.org.uk> wrote:
Hoi,

What's the best way to process (ideally using the org-e= lement API) a collection of .org files as one larger file?

I'm using Org + ox-reveal to write the course material for a t= hree 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 propertie= s. 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-separ= ated string to the REQUIREMENTS property.

I have a= small function that uses the org-element API to iterate over all the headi= ngs in a file and tell if if I have any headings that list a requirement wi= thout 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 th= at 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 include= d 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
--000000000000a47f1a05799a78b6--