summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenrik Koschitzki <h.koschitzki@mailbox.org>2019-08-17 14:26:26 +0200
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2019-08-17 14:26:26 +0200
commit4e854974be9788f029f2d73f829c4d51d2b83faf (patch)
tree2ef162b0e0f5bf20e66670ba8e66498c91fb3760
parentc7bce7a9869b4e18052b7efa59f2bce8962c535d (diff)
downloadorg-mode-4e854974be9788f029f2d73f829c4d51d2b83faf.tar.gz
ob-plantuml: Allow different @start-/@end clauses
* lisp/ob-plantuml (org-babel-plantuml-make-body) Do not insert @startuml and @enduml if body already starts with "@start". PlantUML supports non-UML diagrams that have to be enclosed with @startgantt/@endgantt for example. The code for these diagrams can contain the proper clauses without being enclosed additionally with @startuml/@enduml.
-rw-r--r--lisp/ob-plantuml.el15
1 files changed, 9 insertions, 6 deletions
diff --git a/lisp/ob-plantuml.el b/lisp/ob-plantuml.el
index 5d7b159..09c9a33 100644
--- a/lisp/ob-plantuml.el
+++ b/lisp/ob-plantuml.el
@@ -60,16 +60,19 @@ are expected to be scalar variables."
(defun org-babel-plantuml-make-body (body params)
"Return PlantUML input string.
+
BODY is the content of the source block and PARAMS is a property list
of source block parameters. This function relies on the
`org-babel-expand-body:generic' function to extract `:var' entries
from PARAMS and on the `org-babel-variable-assignments:plantuml'
-function to convert variables to PlantUML assignments."
- (concat
- "@startuml\n"
- (org-babel-expand-body:generic
- body params (org-babel-variable-assignments:plantuml params))
- "\n@enduml"))
+function to convert variables to PlantUML assignments.
+
+If BODY does not contain @startXXX ... @endXXX clauses, @startuml
+... @enduml will be added."
+ (let ((assignments (org-babel-variable-assignments:plantuml params)))
+ (if (string-prefix-p "@start" body t) assignments
+ (format "@startuml\n%s\n@enduml"
+ (org-babel-expand-body:generic body params assignments)))))
(defun org-babel-execute:plantuml (body params)
"Execute a block of plantuml code with org-babel.