From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Schulte Subject: Re: Does org export have something like Lisp quasiquote and unquote? Date: Thu, 20 Feb 2014 08:36:53 -0500 Message-ID: <877g8p689i.fsf@gmail.com> References: <87eh2zf1y0.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:54442) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WGWoV-0002Pk-Gy for emacs-orgmode@gnu.org; Thu, 20 Feb 2014 11:49:35 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WGWoR-0005cD-98 for emacs-orgmode@gnu.org; Thu, 20 Feb 2014 11:49:31 -0500 Received: from mail-yk0-x22f.google.com ([2607:f8b0:4002:c07::22f]:48765) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WGWoR-0005bL-44 for emacs-orgmode@gnu.org; Thu, 20 Feb 2014 11:49:27 -0500 Received: by mail-yk0-f175.google.com with SMTP id 131so2299279ykp.6 for ; Thu, 20 Feb 2014 08:49:25 -0800 (PST) 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: Oleh Cc: org mode Oleh writes: >> The following will do what you want. >> >> set the value >> #+begin_src lisp :results silent >> (defvar foo '(defun square (x) (* x x))) >> #+end_src >> >> #+begin_src lisp :results output pp code >> foo >> #+end_src >> >> #+RESULTS: >> #+BEGIN_SRC lisp >> >> (DEFUN SQUARE (X) (* X X)) >> #+END_SRC >> >> Best, >> >> -- >> Eric Schulte >> https://cs.unm.edu/~eschulte >> PGP: 0x614CA05D > > Thanks, Eric, > > but this isn't what I had in mind. I want the org-mode file to remain > unchanged while behaving as if it was changed, something like C > macros: C compiler is not aware of macros and I'm not aware of the > expanded code, but we get along nicely anyway. > Think of code blocks as macros with optional interactive expansion. If you don't execute the code block you need not ever see the results, however with an additional ":exports results" header argument the code block will be executed and replaced with it's results on export. Take a look at the (info "(org) Working With Source Code") portion of the Org-mode manual. Hope this helps, > > First use-case is that I'm writing documentation for a library of > functions, so some of them are mentioned a few times. I'd like to > refer to them not by name, which can be subjected to change but by a > file local variable. For instance, I've got a link in a table > referring to a heading. They both have the same name and I'd like to > keep them consistent, but I don't want to do it manually. > > Second use-case is that I'm generating a HTML block with > `htmlize-buffer' that I want to include in the document. I'd prefer > not to have hundreds of lines of HTML that correspond to 3 lines of > code that they're supposed to represent. I'd rather generate this HTML > via this macro mechanism that I hope exists in some form, maybe in > conjunction with a makefile-like mechanism. > > Here's the org file that I'm working on: > https://raw.github.com/abo-abo/lispy/gh-pages/index.org. > As you see a lot of redundancy there and also several huge ugly HTML blocks. > Btw, is there a way to #include HTML blocks? > Here's the export result: http://abo-abo.github.io/lispy/. > > regards, > Oleh -- Eric Schulte https://cs.unm.edu/~eschulte PGP: 0x614CA05D