Advertisement
mystis

ob-plantuml defun

Feb 3rd, 2021
1,782
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 1.88 KB | None | 0 0
  1. (defun org-babel-execute:plantuml (body params)
  2.   "Execute a block of plantuml code with org-babel.
  3. This function is called by `org-babel-execute-src-block'."
  4.   (let* ((out-file (or (cdr (assq :file params))
  5.                (error "PlantUML requires a \":file\" header argument")))
  6.      (cmdline (cdr (assq :cmdline params)))
  7.      (in-file (org-babel-temp-file "plantuml-"))
  8.      (java (or (cdr (assq :java params)) ""))
  9.      (full-body (org-babel-plantuml-make-body body params))
  10.      (cmd (if (string= "" org-plantuml-jar-path)
  11.           (error "`org-plantuml-jar-path' is not set")
  12.         (concat "java " java " -jar "
  13.             (shell-quote-argument
  14.              (expand-file-name org-plantuml-jar-path))
  15.             (if (string= (file-name-extension out-file) "png")
  16.                 " -tpng" "")
  17.             (if (string= (file-name-extension out-file) "svg")
  18.                 " -tsvg" "")
  19.             (if (string= (file-name-extension out-file) "eps")
  20.                 " -teps" "")
  21.             (if (string= (file-name-extension out-file) "pdf")
  22.                 " -tpdf" "")
  23.             (if (string= (file-name-extension out-file) "tex")
  24.                 " -tlatex" "")
  25.             (if (string= (file-name-extension out-file) "vdx")
  26.                 " -tvdx" "")
  27.             (if (string= (file-name-extension out-file) "xmi")
  28.                 " -txmi" "")
  29.             (if (string= (file-name-extension out-file) "scxml")
  30.                 " -tscxml" "")
  31.             (if (string= (file-name-extension out-file) "html")
  32.                 " -thtml" "")
  33.             (if (string= (file-name-extension out-file) "txt")
  34.                 " -ttxt" "")
  35.             (if (string= (file-name-extension out-file) "utxt")
  36.                 " -utxt" "")
  37.             " -p " cmdline " < "
  38.             (org-babel-process-file-name in-file)
  39.             " > "
  40.             (org-babel-process-file-name out-file)))))
  41.     (unless (file-exists-p org-plantuml-jar-path)
  42.       (error "Could not find plantuml.jar at %s" org-plantuml-jar-path))
  43.     (with-temp-file in-file (insert full-body))
  44.     (message "%s" cmd) (org-babel-eval cmd "")
  45.     nil)) ;; signal that output has already been written to file
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement