added integration directory for org-tangle (from Eric N.'s into email)
This commit is contained in:
parent
0df550d84c
commit
f383f7e30c
|
@ -0,0 +1,3 @@
|
||||||
|
text line 1
|
||||||
|
text line 2
|
||||||
|
text line 3
|
|
@ -0,0 +1,114 @@
|
||||||
|
From: "Eric H. Neilsen, Jr." <neilsen@fnal.gov>
|
||||||
|
Subject: [Orgmode] A tool for creating source code files from example and src blocks in org files
|
||||||
|
To: emacs-orgmode@gnu.org
|
||||||
|
Date: Tue, 02 Jun 2009 13:50:58 -0500
|
||||||
|
|
||||||
|
Hi,
|
||||||
|
|
||||||
|
First, thank you Carsten and others, for putting this thing together;
|
||||||
|
org-mode is the most useful tool I've run across in a long time.
|
||||||
|
|
||||||
|
I recently put together a few commands to create source code files
|
||||||
|
from SRC and EXAMPLE blocks in org-mode files. The original idea is to
|
||||||
|
be able to compile examples in my notes without needing to merge them
|
||||||
|
into a separate source file by hand. As I was writing it I realized
|
||||||
|
this is exactly the same tool one needs to turn org-mode into a
|
||||||
|
literate programming tool (see http://www.literateprogramming.com/ ),
|
||||||
|
so I adopted some of the nomenclature. (I tried literate programming a
|
||||||
|
few years ago, and gave up in frustration with the tools. I am tempted
|
||||||
|
to try again with org-mode.)
|
||||||
|
|
||||||
|
The two user level commands are org-tangle and org-untangle, best
|
||||||
|
explained through example. Running org-tangle in a buffer that looks
|
||||||
|
like this:
|
||||||
|
|
||||||
|
---------------------- begin /tmp/test.org ---------------------------
|
||||||
|
* Some file
|
||||||
|
|
||||||
|
Some text here
|
||||||
|
|
||||||
|
#+CHUNK file1.sh 1
|
||||||
|
#+BEGIN_SRC bash
|
||||||
|
echo "line 1"
|
||||||
|
echo "line 2"
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
more text
|
||||||
|
|
||||||
|
** Some subsection
|
||||||
|
|
||||||
|
#+CHUNK file1.sh 2
|
||||||
|
#+BEGIN_SRC bash
|
||||||
|
echo "line 5"
|
||||||
|
echo "line 6"
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
blah blah blah
|
||||||
|
|
||||||
|
#+CHUNK README.txt 1
|
||||||
|
#+BEGIN_EXAMPLE
|
||||||
|
text line 1
|
||||||
|
text line 2
|
||||||
|
text line 3
|
||||||
|
#+END_EXAMPLE
|
||||||
|
|
||||||
|
foo foo bar baz
|
||||||
|
|
||||||
|
#+CHUNK file1.sh 1.5
|
||||||
|
#+BEGIN_SRC bash
|
||||||
|
echo "line 3"
|
||||||
|
echo "line 4"
|
||||||
|
#+END_SRC
|
||||||
|
-------------- end /tmp/test.org ----------------
|
||||||
|
|
||||||
|
results in the creation of these two files, opened in emacs buffers:
|
||||||
|
|
||||||
|
------------- begin /tmp/file1.sh ----------------
|
||||||
|
# ORGCHUNK /tmp/test.org 1
|
||||||
|
echo "line 1"
|
||||||
|
echo "line 2"
|
||||||
|
# ORGCHUNK /tmp/test.org 1.5
|
||||||
|
echo "line 3"
|
||||||
|
echo "line 4"
|
||||||
|
# ORGCHUNK /tmp/test.org 2
|
||||||
|
echo "line 5"
|
||||||
|
echo "line 6"
|
||||||
|
------------- end /tmp/file1.sh ---------------------
|
||||||
|
|
||||||
|
and
|
||||||
|
|
||||||
|
------------ begin /tmp/README.txt -------------
|
||||||
|
text line 1
|
||||||
|
text line 2
|
||||||
|
text line 3
|
||||||
|
------------ end /tmp/README.txt ---------------
|
||||||
|
|
||||||
|
If you then edit file1.sh and run org-untangle in the buffer, changes
|
||||||
|
to it will overwrite the literal blocks in the org-mode file from
|
||||||
|
whence they came.
|
||||||
|
|
||||||
|
Is there any interest in this? My organization's rules for releasing
|
||||||
|
code to open source projects are being revised, but I am likely to be
|
||||||
|
able to do so under a BSD-like license. If there is interest, I will
|
||||||
|
push to try and figure out how to do this, and maybe even see if I can
|
||||||
|
do the assignment of copyright stuff needed for it to get under the
|
||||||
|
main umbrella (although I am not optimistic).
|
||||||
|
|
||||||
|
(If anyone feels like rewriting it, that would be even better; aside
|
||||||
|
from a fairly straightforward .emacs, this is my first ever lisp code,
|
||||||
|
so it is likely to need cleaning and refactoring.)
|
||||||
|
|
||||||
|
-Eric
|
||||||
|
|
||||||
|
--
|
||||||
|
Eric H. Neilsen, Jr.
|
||||||
|
http://home.fnal.gov/~neilsen
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
_______________________________________________
|
||||||
|
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
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
# ORGCHUNK /tmp/test.org 1
|
||||||
|
echo "line 1"
|
||||||
|
echo "line 2"
|
||||||
|
# ORGCHUNK /tmp/test.org 1.5
|
||||||
|
echo "line 3"
|
||||||
|
echo "line 4"
|
||||||
|
# ORGCHUNK /tmp/test.org 2
|
||||||
|
echo "line 5"
|
||||||
|
echo "line 6"
|
|
@ -0,0 +1,36 @@
|
||||||
|
* Some file
|
||||||
|
|
||||||
|
Some text here
|
||||||
|
|
||||||
|
#+CHUNK file1.sh 1
|
||||||
|
#+BEGIN_SRC bash
|
||||||
|
echo "line 1"
|
||||||
|
echo "line 2"
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
more text
|
||||||
|
|
||||||
|
** Some subsection
|
||||||
|
|
||||||
|
#+CHUNK file1.sh 2
|
||||||
|
#+BEGIN_SRC bash
|
||||||
|
echo "line 5"
|
||||||
|
echo "line 6"
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
blah blah blah
|
||||||
|
|
||||||
|
#+CHUNK README.txt 1
|
||||||
|
#+BEGIN_EXAMPLE
|
||||||
|
text line 1
|
||||||
|
text line 2
|
||||||
|
text line 3
|
||||||
|
#+END_EXAMPLE
|
||||||
|
|
||||||
|
foo foo bar baz
|
||||||
|
|
||||||
|
#+CHUNK file1.sh 1.5
|
||||||
|
#+BEGIN_SRC bash
|
||||||
|
echo "line 3"
|
||||||
|
echo "line 4"
|
||||||
|
#+END_SRC
|
Loading…
Reference in New Issue