Browse Source

Merge branch 'master' of orgmode.org:org-mode

Bastien Guerry 13 years ago
parent
commit
279aeb37cc
1 changed files with 17 additions and 2 deletions
  1. 17 2
      lisp/ob-ditaa.el

+ 17 - 2
lisp/ob-ditaa.el

@@ -57,6 +57,12 @@
   :group 'org-babel
   :group 'org-babel
   :type 'string)
   :type 'string)
 
 
+(defcustom org-ditaa-eps-jar-path
+  (expand-file-name "DitaaEps.jar" (file-name-directory org-ditaa-jar-path))
+  "Path to the DitaaEps.jar executable."
+  :group 'org-babel
+  :type 'string)
+
 (defcustom org-ditaa-jar-option "-jar"
 (defcustom org-ditaa-jar-option "-jar"
   "Option for the ditaa jar file.
   "Option for the ditaa jar file.
 Do not leave leading or trailing spaces in this string."
 Do not leave leading or trailing spaces in this string."
@@ -76,16 +82,25 @@ This function is called by `org-babel-execute-src-block'."
 	 (cmdline (cdr (assoc :cmdline params)))
 	 (cmdline (cdr (assoc :cmdline params)))
 	 (java (cdr (assoc :java params)))
 	 (java (cdr (assoc :java params)))
 	 (in-file (org-babel-temp-file "ditaa-"))
 	 (in-file (org-babel-temp-file "ditaa-"))
+	 (eps (cdr (assoc :eps params)))
 	 (cmd (concat "java " java " " org-ditaa-jar-option " "
 	 (cmd (concat "java " java " " org-ditaa-jar-option " "
 		      (shell-quote-argument
 		      (shell-quote-argument
-		       (expand-file-name org-ditaa-jar-path))
+		       (expand-file-name
+			(if eps org-ditaa-eps-jar-path org-ditaa-jar-path)))
 		      " " cmdline
 		      " " cmdline
 		      " " (org-babel-process-file-name in-file)
 		      " " (org-babel-process-file-name in-file)
-		      " " (org-babel-process-file-name out-file))))
+		      " " (org-babel-process-file-name out-file)))
+	 (pdf-cmd (when (and (or (string= (file-name-extension out-file) "pdf")
+				 (cdr (assoc :pdf params))))
+		    (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)
     (unless (file-exists-p org-ditaa-jar-path)
       (error "Could not find ditaa.jar at %s" org-ditaa-jar-path))
       (error "Could not find ditaa.jar at %s" org-ditaa-jar-path))
     (with-temp-file in-file (insert body))
     (with-temp-file in-file (insert body))
     (message cmd) (shell-command cmd)
     (message cmd) (shell-command cmd)
+    (when pdf-cmd (message pdf-cmd) (shell-command pdf-cmd))
     nil)) ;; signal that output has already been written to file
     nil)) ;; signal that output has already been written to file
 
 
 (defun org-babel-prep-session:ditaa (session params)
 (defun org-babel-prep-session:ditaa (session params)