Thanks for the great example Gary! I've been meaning to try org-babel
out for a while but never got around to it.
I just tried your example and when I run org-babel-tangle the code
blocks are not expanded into the source file, but rather the code block
names are just inserted into the source destination (e.g.
<<find-discounted-subsets>> instead of the actual function). Any ideas
on what may be wrong? Do you have global settings that are perhaps
making the tangle work differently on your setup? I was able to export
the document to HTML just fine and execute the clojure code, so the only
issue appears to be tangling.
I'm using Emacs 24 and the only org specific code I have is applying
your provided patch after requiring ob-clojure.
Thanks again for the example,
Ben
On 9/11/12 2:13 PM, Gary Johnson wrote:
I just put together a simple example repo on GitHub, containing a
literate programming solution to the Potter Kata
(http://codingdojo.org/cgi-bin/wiki.pl?KataPotter) using Emacs'
org-babel mode. You can check it out here:
https://github.com/lambdatronic/org-babel-example
Also be sure to take a look at the canonical online org-babel docs:
http://orgmode.org/worg/org-contrib/babel/
In particular the intro section:
http://orgmode.org/worg/org-contrib/babel/intro.html
And even though it's a little bit dated w.r.t. the current org-mode
version in Emacs 24, this journal article on Org-Mode's literate
programming and reproducible research features is really, really cool
to work through (lots of nice code examples):
http://www.jstatsoft.org/v46/i03
Happy hacking,
~Gary
On Saturday, September 8, 2012 4:24:38 AM UTC-4, Denis Labaye wrote:
On Thu, Sep 6, 2012 at 6:42 PM, lambdatronic <gwjo...@uvm.edu
<javascript:>> wrote:
For those people (like myself) who do a lot of Literate
Programming in Emacs using Clojure and org-babel, migrating to
nrepl and nrepl.el is somewhat non-trivial. This is because
the existing Clojure support in org-babel (ob-clojure.el)
relies on slime and swank-clojure when running
org-babel-execute-src-block (which redirects to
org-babel-execute:clojure in ob-clojure.el).
So clearly this is actually an issue for both nrepl.el and
ob-clojure.el, not simply one or the other. All the same, I've
hacked together a simple workaround that fixes the problem and
makes Literate Programming under nrepl possible once again. If
there is some slick way this could be worked into nrepl.el's
codebase that wouldn't break its existing behavior (as this
does), I'd be excited to see it.
Here we go:
;; Patch result table rendering bug in ob-clojure (NREPL version)
(defun nrepl-send-request-sync (request)
"Send a request to the backend synchronously (discouraged).
The result is a plist with keys :value, :stderr and :stdout."
(with-current-buffer "*nrepl-connection*"
(setq nrepl-sync-response nil)
(nrepl-send-request request (nrepl-sync-request-handler
(current-buffer)))
(while (not (plist-get nrepl-sync-response :done))
(accept-process-output))
nrepl-sync-response))
(defun org-babel-execute:clojure (body params)
"Execute a block of Clojure code with Babel."
(let ((result-plist (nrepl-send-string-sync
(org-babel-expand-body:clojure body params) nrepl-buffer-ns))
(result-type (cdr (assoc :result-type params))))
(org-babel-script-escape
(cond ((eq result-type 'value) (plist-get result-plist
:value))
((eq result-type 'output) (plist-get result-plist
:value))
(t (message "Unknown
:results type!"))))))
Have fun!
It seems to be very interesting, I am already using Emacs /
org-mode / clojure a lot, I was aware of org-babel, but never used it.
Would you have a simple example project (on github, ...) on how to
bootstrap this ?
Thanks,
Denis
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo...@googlegroups.com
<javascript:>
Note that posts from new members are moderated - please be
patient with your first post.
To unsubscribe from this group, send email to
clojure+u...@googlegroups.com <javascript:>
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
<http://groups.google.com/group/clojure?hl=en>
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient
with your first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en