emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Waldemar Quevedo <waldemar.quevedo@gmail.com>
To: Nicolas Girard <girard.nicolas@gmail.com>
Cc: emacs-orgmode <emacs-orgmode@gnu.org>
Subject: Re: [RFC] org-noweb: org-tangle + org-weave for literate programming using Org
Date: Wed, 11 Jun 2014 09:00:19 +0900	[thread overview]
Message-ID: <CALzn4ygCUCF3D5AsOm+YNc0GDWxsDTEWjj4dO76YB3-5-ckf2w@mail.gmail.com> (raw)
In-Reply-To: <CANMKmeesr9=KtipHCadQ2tJrs3d0s-UeKKsqSZgc=1N0n9C7CQ@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 3842 bytes --]

Hi Nicolas,

This is the right direction I think. I added a similar command to a project
that I've been working but I use the Ruby parser so the functionality is
less: https://github.com/wallyqs/org-converge/blob/master/bin/org-tangle

So... I have a added a link to your project.

Thanks for sharing!

- Wally


On Tue, Jun 10, 2014 at 11:46 PM, Nicolas Girard <girard.nicolas@gmail.com>
wrote:

> Hi folks,
>
> I've released today a couple of tools named "org-tangle" and
> "org-weave" in a public GitHub repository:
> https://github.com/ngirard/org-noweb
>
> I thought that Org's literate programming abilities deserved to be
> made accessible non-interactively from the command-line via "official"
> commands, and I hope this repository will help establish them.
>
> The benefits of such an approach I can think of are:
> - to provide people with reference tools they can refer to;
> - to isolate common behavior from people's customization that can be
> repeated consistently and reliably;
> - to lower the entry barrier for newcomers;
> - to attract the people who might just be interested in Org as a
> literate programming tool first, before grasping other areas of the
> Org "platform".
>
> Now, I'd be very glad if we could use this code as a starting point
> and discuss about it.
>
> For instance:
>
> - What should these tools do, and how ? It seemed to me that they
> should only glue functionality from external tools and libraries,
> rather than embedding functionality in their cores.
>
>   For instance, if org-weave ever had to gain cross-indexing and
> referencing features similar to its oldest siblings (weave, noweave),
> it should be achieved by leveraging some dedicated elisp package,
> LaTeX style file, or whatever, rather than implementing them itself.
>
>   What do you think ?
>
> - Into which language should these tools be written ? I've chosen the
> Bash shell because it's available almost everywhere. Does it seem ok
> for you ? Would it be useful to write them in POSIX-compliant code ?
>
> - About =org-tangle=: should it take only one org file, or several
> files, as an argument ?
>
>   I gave =org-tangle= the same behaviour than the code snippet that
> can be found in Org manual
> ([[info:org#Batch%20execution][info:org#Batch execution]]), so for now
> you can type
>
>   #+begin_src sh
>     org-tangle file1.org file2.org
>   #+end_src
>
>   But it makes more sense to me, that org-tangle takes only one file,
> and optionally the name of a source code block to be extracted, like
>
>   #+begin_src sh
>     org-tangle file.org [chunkname]
>   #+end_src
>
>   What do you think ?
>
> - About =org-babel-use-quick-and-dirty-noweb-expansion=: should it be
> set to 't' by default ? I'd be tempted to say yes, given the dramatic
> performance gain
>
> - etc, etc...
>
> Also, while not necessary, I thought it would be nice if org-noweb
> tools ate their own dogfoot and extracted themselves ; so I've written
> them in literate programming style and I have to say I really enjoyed
> the process.
>
> The tools are a mix of elisp and shell code, and it seems to me like
> Org + literate style really shine here at making the code readable and
> understandable.
>
> That said, there are a few quirks into the code I'd be glad to see
> disappear:
>
> 1. It made sense for me to write the command line options as an Org
> table (look at =#tblname: options= in
> https://raw.githubusercontent.com/ngirard/org-noweb/master/org-tangle.org)
> ; but if you see the docstring for the =-E= option, I wanted to write
> "Default value is <<emacs>>" but couldn't find a way to get this
> reference to expand ; so I had to manually write "Default value is
> xxxxx". Any hints ?
> 2. The boilerplate fonctions =escape-quotes= and =format-options= :
> could it be done in a better way ?
>
> Cheers,
>
> Nicolas
>
>

[-- Attachment #2: Type: text/html, Size: 5071 bytes --]

      parent reply	other threads:[~2014-06-11  0:00 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-10 14:46 [RFC] org-noweb: org-tangle + org-weave for literate programming using Org Nicolas Girard
2014-06-10 17:54 ` Grant Rettke
2014-06-11  8:18   ` Nicolas Girard
2014-06-11 14:20     ` Grant Rettke
2014-06-11  0:00 ` Waldemar Quevedo [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CALzn4ygCUCF3D5AsOm+YNc0GDWxsDTEWjj4dO76YB3-5-ckf2w@mail.gmail.com \
    --to=waldemar.quevedo@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=girard.nicolas@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).