[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] babel for ditaa-eps

From: Eric Schulte
Subject: Re: [O] babel for ditaa-eps
Date: Thu, 13 Sep 2012 09:03:03 -0600
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2.50 (gnu/linux)

"Arne Babenhauserheide (IMK)" <address@hidden> writes:

> Hi Eric,
> It’s much easier to answer, what this does not share with ob-ditaa.el :)
> If I cut out the obvious renaming (to be able to use a ditaa-exp
> source type), it’s just this diff (and the first half of that only
> defines variables…):

Hi Arne,

I re-worked your diff into a patch against ob-ditaa.el which adds an
:eps header argument to ditaa code blocks.  Please try this out and let
me know if it works and if it loses any functionality from your original

Should we distribute the DitaaEps.jar with Org-mode in the same manner
as we now distribute ditaa.jar?

>From 643d59bfebc2a917bdd4b5da002df4b663f65be2 Mon Sep 17 00:00:00 2001
From: Eric Schulte <address@hidden>
Date: Thu, 13 Sep 2012 08:58:31 -0600
Subject: [PATCH] adding :eps header argument to ditaa code blocks

Use of this header argument will change the back-end engine from
ditaa.jar to a combination of DitaaEps.jar and epstopdf.

This patch is based off of ob-ditaa-eps.el sent to the mailing list by
Arne Babenhauserheide (IMK).
 lisp/ob-ditaa.el | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/lisp/ob-ditaa.el b/lisp/ob-ditaa.el
index 1c6c712..3fbf50b 100644
--- a/lisp/ob-ditaa.el
+++ b/lisp/ob-ditaa.el
@@ -57,6 +57,9 @@
   :group 'org-babel
   :type 'string)
+(defcustom org-ditaa-eps-jar-path
+  (expand-file-name "DitaaEps.jar" (file-name-nondirectory 
 (defcustom org-ditaa-jar-option "-jar"
   "Option for the ditaa jar file.
 Do not leave leading or trailing spaces in this string."
@@ -76,16 +79,24 @@ This function is called by `org-babel-execute-src-block'."
         (cmdline (cdr (assoc :cmdline params)))
         (java (cdr (assoc :java params)))
         (in-file (org-babel-temp-file "ditaa-"))
+        (eps (cdr (assoc :eps params)))
         (cmd (concat "java " java " " org-ditaa-jar-option " "
-                      (expand-file-name org-ditaa-jar-path))
+                      (expand-file-name
+                       (if eps org-ditaa-eps-jar-path org-ditaa-jar-path)))
                      " " cmdline
                      " " (org-babel-process-file-name in-file)
-                     " " (org-babel-process-file-name out-file))))
+                     " " (org-babel-process-file-name out-file)))
+        (eps-cmd (when eps
+                   (concat
+                    "epstopdf"
+                    " " (org-babel-process-file-name (concat in-file ".eps"))
+                    " -o=" (org-babel-process-file-name out-file)))))
     (unless (file-exists-p org-ditaa-jar-path)
       (error "Could not find ditaa.jar at %s" org-ditaa-jar-path))
     (with-temp-file in-file (insert body))
     (message cmd) (shell-command cmd)
+    (when eps (message eps-cmd) (shell-command eps-cmd))
     nil)) ;; signal that output has already been written to file
 (defun org-babel-prep-session:ditaa (session params)

Eric Schulte

reply via email to

[Prev in Thread] Current Thread [Next in Thread]