From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jambunathan K Subject: [BABEL][PROPOSAL] headlines as executable srcnames Date: Wed, 08 Sep 2010 21:52:51 +0530 Message-ID: <817hiwqk6c.fsf_-_@gmail.com> References: <87zkvtn5u7.fsf@mundaneum.com> <81wrqxv1bq.fsf@gmail.com> <87r5h5gwxo.fsf@mundaneum.com> <87iq2huk7u.fsf@gmail.com> <81lj7cyhkq.fsf@gmail.com> <87lj7cz1lh.fsf@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from [140.186.70.92] (port=55481 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OtNQV-0007je-Ll for emacs-orgmode@gnu.org; Wed, 08 Sep 2010 12:23:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OtNQT-00036D-VE for emacs-orgmode@gnu.org; Wed, 08 Sep 2010 12:23:11 -0400 Received: from mail-pv0-f169.google.com ([74.125.83.169]:48120) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OtNQT-00035v-Lw for emacs-orgmode@gnu.org; Wed, 08 Sep 2010 12:23:09 -0400 Received: by pvc30 with SMTP id 30so171424pvc.0 for ; Wed, 08 Sep 2010 09:23:08 -0700 (PDT) In-Reply-To: <87lj7cz1lh.fsf@gmail.com> (Eric Schulte's message of "Wed, 08 Sep 2010 09:15:05 -0600") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Eric Schulte Cc: emacs-orgmode@gnu.org --=-=-= Jambu> I think there is a strong case for making headlines act as babel Jambu> srcnames with their body providing content for noweb expansion Jambu> [3]. This behaviour could be controlled by a buffer local Jambu> variable. Eric> This is an interesting suggestion. Next time I have time I will Eric> but together a trail implementation to see how naturally this fits Eric> into the rest of the Babel system. There could be issues Eric> (e.g. how to do set header arguments for the headline). Good to hear this. I am attaching a mail that I had (accidentally) unicast to Sebastien elaborating on the possibilities. This could be of interest to the list. Jambu> If babel supports headlines as srcnames, without requiring additional Jambu> begin/end directives one could just write, Jambu> Jambu> * org-list Jambu> - one Jambu> - two Jambu> - three Jambu> Jambu> #+begin_src emacs-lisp :tangle yes :noweb yes Jambu> " Jambu> <> Jambu> " Jambu> #+end_src Jambu> Jambu> and achieve similar results. Jambu> Eric> Yes, however the syntax you've used above to pass a header Eric> argument to the org-lisp code block violates the existing noweb Eric> syntax. The place where you've inserted ":fmt latex" is reserved Eric> for passing regular arguments to code blocks. That is precisely my point. If org headlines are srcnames there is every reason that they take arguments. See my attached mail that talks of implicit 'this' and ':fmt' parameters. I am not as concerned about the existing syntax, as the possibilities that could potentially unfold with this mind-twister. Eric> There has been discussion of allowing post-processing forms for Eric> code blocks which would take the results of a code block as an Eric> argument every time the code block has been called and whose Eric> results would replace the actual code block results, however this Eric> has not yet been implemented. If headlines are considered as code blocks one actually inflate headlines and execute them for interesting side-effects. The attached mail elaborates on this point. Thanks, Jambunathan K. Attachment: --=-=-= Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable From: Jambunathan K Subject: Re: Composing letters using Org mode and the LaTeX isodoc class To: S=E9bastien Vauban Date: Wed, 08 Sep 2010 21:07:26 +0530 Message-ID: <81lj7cqma1.fsf@gmail.com> S=E9bastien Vauban writes: > Hi Jambunathan, > > Jambunathan K wrote: >> Honoring spaces would be a pre-requisite if one were to allow org's >> headlines as implicit srcnames. > > Or you would have to impose titles without spaces, which is acceptable as= well > for such a usage... > Org is for humans. We need spaces (pun intended). This is why I find CamelCase words in a text document quite awkward. On the otherhand, I don't find it awkward as variable and function names in source code. Read on ... More comments down below. > >> If babel supports headlines as srcnames, without requiring additional >> begin/end directives one could just write, >> >> * org-list >> - one >> - two >> - three >> >> #+begin_src emacs-lisp :tangle yes :noweb yes >> " >> <> >> " >> #+end_src >> >> and achieve similar results. >> >> Based on my earlier efforts at letter-writing, I have the following >> observation. >> >> Letters have a To address and they could be pulled from bbdb. So one >> could say, >> >> * To >> [[a bbdb link]] >> >> >> #+begin_src emacs-lisp :tangle yes :noweb yes >> " >> <> >> " >> #+end_src >> >> The string custom could be a elisp form or a function pointer that takes >> the body of the headline as an argument and does the needful. >> >> Specifically in the above example, 'custom' handler would visit the bbdb >> record, fetch the address and return the formatted address (with line >> breaks etc etc) as the noweb expansion. [Custom handler would be >> implemented by the user himself] >> >> Any thoughts on how this could be achieved ... > > That's going (really) far... But would that be do-able, waaoow! Yes it is going far.=20 Sometimes going far makes us feel elated while at other times it makes us feel down and out ;-). In the present case, the experience would be of the first kind. Otherwise would I dare suggest it? I would provide an example and later summarize what the implications are. Before proceeding ahead we need to remember the following: 1. Headline in an org document is code. That is I can call it.=20=20 It always has an implicit 'this' parameter which is the 'content of the headline'. It could have additional parameters like :fmt as above (with :fmt text or :fmt org) being the default values. 2. (1) implies that I can 'execute' an org file. Now an example. * Isodoc=20 [[Link to page 9 of isodoc.pdf]] * Extract of Isodoc for ready reference > Now if I execute the 'Extract ...' subtree I have essentially imported a pdf page as text content.=20 In the above example, the execution of headline would do some sort of extract pdf pages and/or pdftotext. If the link were actually a gmane thread it would amount to doing 'w3m -dump ...'. Let's now take it even a bit further. It seems that there are a good number of people who use 'one org file to rule them all'. It also seems fairly common that one version controls an agenda or a working file. Then it naturally follows that one would like to import a git controlled file as a headline node in the master file.=20 This should be quite possible with the proposed enhancement. * Agenda file [[git url]] * Agenda Node <> Good thing is that I only need to tangle the headline to checkout the agenda file on a remote server as a head line node. One could also think of how one could git commit a headline node on the way out. One could achieve Aliased Trees [1], Translations [2] and interesting mashups like selective annotation [3] and agenda mashups[4] [1] http://thread.gmane.org/gmane.emacs.orgmode/27108 Plain import headline in another headline [2] http://article.gmane.org/gmane.emacs.orgmode/27534/match=3Dtranslation Tangling as language translation. Tangling a vocabulary node tangles the headline nodes to be translated which in turn 'pull' in the newly translation. [3] http://thread.gmane.org/gmane.emacs.orgmode/24431/focus=3D24581 =20=20=20=20 Requests like a master TODO file that is 'shared' by teams, extracting text snippets from a file (that I don't have control over) and possibly view it side-by-side with my annotation etc etc have surfaced in the past in this mailing list. [4] http://thread.gmane.org/gmane.emacs.orgmode/3273/focus=3D3274 Good thing is that all these workflows could be supported with little effort and without impairing the simplicity and elegance of org-mode. Jambunathan K. --=-=-= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode --=-=-=--