hexo-filter-plantuml
v2.1.1
Published
Using PlantUML to generate UML Diagram for hexo
Downloads
287
Readme
@wafer-li 's hexo-filter-plantuml has been transfered to me duo to maintain issues.
I have created another hexo plugin called hexo-filter-kroki, which supports 20+ diagrams (including plantuml).
Features
- Generate raw/base64/urlencoded svg at compile time, no external css and js required.
- Privacy guaranteed. Support rendering locally or self-hosting server.
- Zero npm dependencies.
How Does it work
Install
npm install --save hexo-filter-plantuml
Minimum configuration
No configuration required. By default, it will send your text to plantuml.com
for rendering, and the base64-encoded images will be inlined in the html.
Advanced configuration
Server-side(recommend)
Please keep in mind, if you want more about privacy/safety, please replace your own self-hosting render server.
plantuml:
# Local or PlantUMLServer.
render: "PlantUMLServer"
# The render server, you can also create your self-hosting sever
# self-hosting cmd: java -jar /usr/local/Cellar/plantuml/1.2021.5/libexec/plantuml.jar -picoweb
# server: http://localhost:8080/plantuml
server: "http://www.plantuml.com/plantuml"
# "inline": <svg>xxx<svg/>
# "inlineUrlEncode": <img src='data:image/svg+xml;>
# "inlineBase64": <img src='data:image/svg+xml;base64>
# "localLink": <img src="/assert/puml/xxxx.svg">
# "externalLink": <img src="http://www.plantuml.com/plantuml/svg/xxx">
link: "inline"
# common options: svg/png
outputFormat: "svg"
Client-side
It may be slower for plantuml.jar will restart JVM per code fragment.
plantuml:
# Local or PlantUMLServer.
render: "Local"
# "inline": <svg>xxx<svg/>
# "inlineUrlEncode": <img src='data:image/svg+xml;>
# "inlineBase64": <img src='data:image/svg+xml;base64>
# "localLink": <img src="/assert/puml/xxxx.svg">
link: "inline"
# where your dot binary
GraphvizDotFile: "/usr/local/bin/dot"
# where your jar
PlantJar: "/usr/local/Cellar/plantuml/1.2021.5/libexec/plantuml.jar",
# common options: svg/png
outputFormat: "svg"
How to use it?
puml
and plantuml
directives both work.
```plantuml
@startuml
Object <|-- ArrayList
Object : equals()
ArrayList : Object[] elementData
ArrayList : size()
@enduml
```
@startuml
and@endpuml
are ALWAYS required or the image will fail to be generated.
or
{% plantuml %}
@startuml
Object <|-- ArrayList
Object : equals()
ArrayList : Object[] elementData
ArrayList : size()
@enduml
{% endplantuml %}
Plugin will pick up block body and replace it with generated base64 svg diagram.
see more details at http://plantuml.com/sitemap-language-specification