#+TITLE: plantuml layer #+TAGS: dsl|layer|markup|programming [[file:img/logo.png]] * Table of Contents :TOC_5_gh:noexport: - [[#description][Description]] - [[#features][Features:]] - [[#install][Install]] - [[#org-babel-integration][Org-Babel Integration]] - [[#key-bindings][Key bindings]] * Description This layer enables support for [[https://github.com/skuro/plantuml-mode][plantuml-mode]], which provides a major-mode for [[http://plantuml.com][plantuml]]. PlantUML is a tool to generate [[https://en.wikipedia.org/wiki/Unified_Modeling_Language][UML diagrams]] from plain-text. For help with how to use plantuml, see the [[http://plantuml.com][plantuml website]] and the [[http://plantuml.com/PlantUML_Language_Reference_Guide.pdf][reference guide]]. The official file extension supported by this layer is =.pum=. If you want something else, set it in your =user-config= function of your =~/.spacemacs= file. For example, the following diagram can be defined as follows: #+BEGIN_SRC plantuml @startuml JAremko->robbyoconnor : I think the docs can benefit from some kind of illustration JAremko<-robbyoconnor : I'm too lazy -- I have actual work to do. I link to the docs. If you can write me a diagram in plantuml, I'll gladly compile and add it. JAremko->robbyoconnor : *gives ths diagram* robbyoconnor<-JAremko : *robbyoconnor adds it and JAremko is happy* ... robbyoconnor->theOtherPerson : And they thinks it's funny? Yup, they definitely finds it funny. Right? @enduml #+END_SRC [[file:img/dia.png]] ** Features: - Syntax highlighting - Diagram preview in various output formats - Embedding into org documents - Controlling the =Plantuml= compiler directly from emacs * Install To use this contribution add it to your =~/.spacemacs= #+BEGIN_SRC emacs-lisp (setq-default dotspacemacs-configuration-layers '(plantuml)) #+END_SRC To control the =Plantuml= compiler you also need to download the [[http://plantuml.com/download][Plantuml jar]] and configure the =plantuml-jar-path= respectively: #+BEGIN_SRC emacs-lisp (setq-default dotspacemacs-configuration-layers '((plantuml :variables plantuml-jar-path "~/plantUml.jar"))) #+END_SRC To get the full range of =Plantuml= compilations working, you will also need the native package [[http://graphviz.org/][graphviz]] installed on your system. * Org-Babel Integration To enable the execution of embedded plantuml code blocks within [[http://orgmode.org/][Org-Mode]] documents, define a value for =org-plantuml-jar-path= in your =~/.spacemacs=: #+BEGIN_SRC emacs-lisp (setq-default dotspacemacs-configuration-layers '((plantuml :variables org-plantuml-jar-path "~/plantUml.jar"))) #+END_SRC * Key bindings | Key binding | Description | |--------------------------+-------------------------------------------------------| | ~SPC m c c~ or ~C-c C-c~ | Build diagram from the text in the current buffer | | ~SPC m c o~ | Set the output type (=unicode text=, =svg=, or =png=) |