Hi Sébastien, Thanks for the description. This is very interesting and I think warrants a re-working of the tangle functionality in org-babel.
Given your description below I think I may try to add the Nuweb link/reference syntax "<<source-block-name>>" to org-babel. As source-code blocks are already named in the current org-babel setup this wouldn't be a very significant change. Once this is added it shouldn't be difficult to expand these links/references on export. Under this new setup the example file you described would be analogous to the this org-mode file. Does this sound like it would accomplish most of what you are after? I will reply to this message if/when I get this implemented. Cheers -- Eric Sébastien Vauban <wxhgmqzgw...@spammotel.com> writes: > Hi Eric and all, > > Here some promised description of how I'm using Literate Programming with > LaTeX (up to now -- soon directly from Org mode?). > > I write an "enhanced LaTeX" file ([1], having the `.nw' -- for Nuweb -- > extension). It is enhanced as I can put blocks of code in there (SQL blocks, > for example), and give them a name for further referencing. > > Then, at some point in the file, I say how I want the code files to look like, > by assembling the blocks in a certain order, with some glue. > > For example: > > <<Enterprise.sql>>= > <<sql-init>> > SELECT abcID, etpID, etpAssurATPolNum > FROM enterprise JOIN record > ON (etpAbcID_fk = abcID) > WHERE etpAbcID_fk > <<sql-cond>> > @ %def > > The above file is made up of two defined blocks (`sql-init' and `sql-cond') > plus some glue in between. > > The good thing is I can reuse the same blocks in other context, completely > avoiding copy/paste of code: > > <<Lessons.sql>>= > <<sql-init>> > SELECT abcID, lesAlternNbrSem, lesNbrSem, > CONVERT(varchar(10), lesDateDeb, @dateFmtStyleOut) AS lesDateDeb, > CONVERT(varchar(10), lesDateFin, @dateFmtStyleOut) AS lesDateFin > FROM lessons JOIN record > ON (lesAbcID_fk = abcID) > WHERE lesAbcID_fk > <<sql-cond>> > @ %def > > OK. So, my `org-lit-prog.nw' file is ready, and committed under Subversion > (this is the only one I'm committing as it contains both the documentation of > the code, and the source code itself). > > Then, I just type (in a terminal): > > noweb org-lit-prog.nw > > to extract both: > > o the LaTeX file [2] to be compiled into a PDF [3], > o the different source code files (Enterprise.sql [4], Lessons.sql [5], > [6] and [7]) > > Just that easy to keep code and doc in sync, and get a very nice-to-read > documentation of the code. > > Sometimes, I play an extra trick is made in the noweb file: I put blocks of > static code (for which I don't especially need any noweb feature) after the > end of the LaTeX document. That way, it gets outputted by noweb as a source > file during the Tangle process, and included in my LaTeX document via the > listings package. > > Why that trick? I could directly put the code in the body of the document! > Yes, but I want the code to be highlighted via listings. Otherwise, it's just > black and white display of the code... > > For easy access, I've put all the above files on a my Web space: > > [1] http://www.mygooglest.com/sva/org-lit-prog.nw > [2] http://www.mygooglest.com/sva/org-lit-prog.tex > [3] http://www.mygooglest.com/sva/org-lit-prog.pdf > [4] http://www.mygooglest.com/sva/Enterprise.sql > [5] http://www.mygooglest.com/sva/Lessons.sql > [6] http://www.mygooglest.com/sva/Payment.sql > [7] http://www.mygooglest.com/sva/prsNumNat.awk > > From what I understand, what we both wanna reach is writing all of the `.nw' > file as an Org file directly, and let Org-babel extracts the source code files > and the documentation out of it. > > What should be good in the future, when it will be ready for prime time, is > that this becomes complete part of the export process: no tangle operation > needed. > > Is the above description worth for you? Do you understand how I work when > documenting code? Pay attention: I'm *the* expert in literate programming. > Just an amateur being seduced by some of its features. > > Best regards, > Seb _______________________________________________ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode