An Emacs library that allows Org mode to evaluate code blocks using Napkin, Python DSL for writing sequence diagrams.
Screenshot:
ob-napkin
depends on napkin
Python package. It can be installed as below:
$ pip install napkin
Then, the Emacs lisp package can be loaded as follows:
(with-eval-after-load 'ob
;; Optional for syntax highlight of napkin-puml src block.
;; (require 'plantuml)
(require 'ob-napkin))
Use nakpin
src block with the mandatory :file
header argument. The
filename extension determines the type of image and it can be any format
supported by PlantUML. For example, it can be png
, svg
, or txt
.
The first line of the source code should be def seq_diagram(c)
.
#+begin_src napkin :file hello.png
def seq_diagram(c):
user = c.object('user')
world = c.object('world')
with user:
world.hello()
#+end_src
napkin-puml
src block can also be use plain PlantUML text. Note that the
same functionality is also supported by plantuml
src block, which is
available from the latest org babel package. However, napkin-puml
src block
uses napkin tool, which relies on the fast PlantUML server instead of jar
file.
#+begin_src napkin-puml :file car.png
class Car
Driver - Car : drives >
#+end_src
org-babel-napkin-plantuml-server-url
can specify the server URL to use. The
default is empty string, which means to use public PlantUML server. For example,
(setq org-babel-napkin-plantuml-server-url "http://localhost:8080")
In order to see the result inline mainly in the terminal mode Emacs,
:results verbatim
header argument can be used without specifying :file
.
For example,
#+begin_src napkin-puml :results verbatim
user -> world : hello
#+end_src