From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Kitchin Subject: Re: templating with Org? Date: Mon, 10 Aug 2015 08:01:44 -0400 Message-ID: References: <8737zumlmm.fsf@ericabrahamsen.net> <871tfbzo96.fsf@ericabrahamsen.net> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:36671) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZOlm4-00060p-G1 for emacs-orgmode@gnu.org; Mon, 10 Aug 2015 08:01:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZOlm1-0004ql-98 for emacs-orgmode@gnu.org; Mon, 10 Aug 2015 08:01:52 -0400 Received: from mail-qg0-x229.google.com ([2607:f8b0:400d:c04::229]:33470) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZOlm1-0004q5-4p for emacs-orgmode@gnu.org; Mon, 10 Aug 2015 08:01:49 -0400 Received: by qged69 with SMTP id d69so115034901qge.0 for ; Mon, 10 Aug 2015 05:01:48 -0700 (PDT) In-reply-to: <871tfbzo96.fsf@ericabrahamsen.net> 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-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Eric Abrahamsen Cc: emacs-orgmode@gnu.org In reviewing these, I discovered I reinvented (and probably not as well!) the function s-format from s.el (https://github.com/magnars/s.el). It might be another option for you. Eric Abrahamsen writes: > John Kitchin writes: > >> I don't have the impression you would need to hijack the export >> process. It seems like you would need to call a function that gets >> data from some source (e.g the org document) and then populates a >> template with that data, and once that is done, call a regular export >> function. There are a number of template solutions: >> http://www.emacswiki.org/emacs/CategoryTemplates. I am not sure these >> are too easy to adapt to what you describe. > > That's an interesting idea: going from the base Org file to a massaged > Org buffer, and then exporting that. I'll try that out for a bit. Thanks > for that, and for the links! > >> I played around with some ideas for this here: >> >> http://kitchingroup.cheme.cmu.edu/blog/2014/01/20/Alternatives-to-long-complex-format-statements-in-emacs-lisp/ >> >> http://kitchingroup.cheme.cmu.edu/blog/2014/01/26/Another-alternative-to-string-templates/ >> >> >> Something like these could be used to populate a template I think. >> >> John >> >> ----------------------------------- >> Professor John Kitchin >> Doherty Hall A207F >> Department of Chemical Engineering >> Carnegie Mellon University >> Pittsburgh, PA 15213 >> 412-268-7803 >> @johnkitchin >> http://kitchingroup.cheme.cmu.edu >> >> On Sat, Aug 8, 2015 at 12:48 AM, Eric Abrahamsen >> wrote: >> >> >> Exporting org files and subtrees is awfully flexible, given all >> the >> possible customizations, but for a long while I've occasionally >> felt the >> need to come at the "export" process from the other direction: >> instead >> of customizing the export appearance of a series of headings, >> instead >> starting with a common block of export text, and interpolating >> values >> from the headings into that text -- ie, templating. >> >> I've felt this need off and on for a couple of years, most >> recently when >> organizing a small literary festival. I really need to keep all >> the >> information about the events in a single place, otherwise I know >> that >> information will go stale right away. But I need the information >> in a >> series of such wildly-varying formats that I can't imagine setting >> up >> (and switching between) export filters in a way that wouldn't make >> me >> cry. Not to mention that the different "export" use-cases all have >> their >> own per-heading boilerplate text, and there's no way I'm going to >> repeat >> all that different boilerplate under each heading. >> >> Obviously there's many ways this could be done. I could somehow >> hijack >> the export process -- in many cases it would be nice too make use >> of the >> skeleton document structures that export provides. >> >> Or maybe dynamic blocks? I've never used them before. Or maybe >> just a >> plain old `org-map-entries', which reads the template text from an >> external file and then steals some of the macro expansion >> functions to >> fill out the values. >> >> Has anyone wanted to do this before? Has anyone actually done it? >> Any >> thoughts or suggestions would be much appreciated! >> >> Yours, >> Eric -- Professor John Kitchin Doherty Hall A207F Department of Chemical Engineering Carnegie Mellon University Pittsburgh, PA 15213 412-268-7803 @johnkitchin http://kitchingroup.cheme.cmu.edu