写技术类的博客文章,经常需要画图,以UML为主。
常用的UML画图工具有很多,有的功能全面,有的免费实用。但这些工具对于写博客来说,总觉得有一些不趁手:
- 需要在多个工具和文件之间切换。
写博客需要用到文件编辑器,画UML图又需要uml编辑器,画好之后又要使用截图工具截下来并贴到文件编辑器中。如果写作过程中对图有修改,又要切换到uml编辑器修改,再截图到文件编辑器中。
这个过程涉及到了三个工具(文件编辑器、uml编辑器、截图工具)和三种文件(文本文件、uml文件、图片)之间的切换。 - uml画图工具经常需要鼠标操作,除了uml本身希望表达的信息之外,还要分出一部分注意力来调整图中诸如文字大小、对齐这类繁琐的事情,这并不是使用快捷键代替鼠标就能解决的。
- 有些uml编辑器不支持导出为图片,只能保存为uml编辑器所支持的格式。需要使用截图工具手动截图。
- 必须以uml编辑器识别的格式保存、打开和编辑,没有版本控制。
经常一段时间的摸索,终于找到了一种满足需求uml画图方式。
明确需求
针对博客中插入uml图这一应用,我希望有这样一种uml画图方式:
文本编辑
将uml的编辑和显示分开,以文本的方式编辑uml信息。
所有的信息都可以以文本的方式表达,不需要鼠标操作。
文本信息的格式不要太复杂。
任意的文本编辑器就可以打开、阅读和修改uml信息。
支持版本控制。
uml展示
将文本信息智能地转换为uml图
效果图看上去专业
支持多种uml图
导出和使用
直接将结果导出到文章中。
不要每次有修改都要在三种工具和文件中来回切换。
所有事情都在一个工具里完成。
解决方案:atom + plantuml + graphviz + markdown
atom是文件编辑器
palntuml是用于编辑uml的语言
markdown是用于编辑博客的语言
graphviz是画图工具。
工作环境
1.安装graphviz
2.在atom中安装package plantuml-viewer和markdown-preview
创建文章
新建文件blog.md
在blog.md中加入uml图的链接:![](uml.png)
打开markdown-preview
现在什么都没有,所以预览到一片空白
创建uml
创建uml.puml
在文件中加入这样的内容
@startuml
Alice -> Bob : Hello
Bob -> Cady : Hello
@enduml
打开plantuml-viewer,会看到这样的图
uml图export到文章中
在plantuml-viewer在点击图,右键另存为png格式。默认的文件名与puml文件同名。
刷新blog.md,就能在markdown-preview中看到了。
更新uml
修改uml.puml
plantuml-viewer会实时更新,重新右键另存为png
图片的改变不会导致markdown-preview的自动更新,刷新一下就可以了。
不刷新也没关系,下次再打开就是最新的了。
使用atom + plantuml + graphviz + markdown给博客添加uml,不需要截图、复制、粘贴,也不需要在多个工具和文件之间切换。
全部工作都在atom中完成,唯一需要额外安装的是graphviz,也只是要安装一下就好了。
plantuml
上述的例子中是一张序列图,其实它可以提供的图非常丰富。
这些都是在plantuml中定义的。
如何使用plantuml定义各种各样的uml图,将在别的文章介绍。
以下是一些uml图的展示
序列图
用例图
类图
活动图
活动图 plus
组件图
状态图
对象图