Typora本身支持flow、mermaid语言绘制时序图、甘特图、流程图等等。若要你的博客也支持解析渲染这些语言描绘的图表,则需要查看博客框架是否支持,然后进行相关配置。
以Hexo为例,原生不支持,但是可以通过安装插件实现以上图表的显示。
-
hexo-filter-mermaid-diagrams
mermaid diagrams for Hexo.
在Hexo中识别并生成由mermaid编写的图表。
可以通过修改Hexo或其他主题的重写博客CSS框架文件,改变渲染出的图表样式。
例如,在Icarus主题中,修改icarus/source/css/style.styl文件,添加以下代码实现图表背景透明:
.mermaid { background: transparent; }
其他配置参考:https://github.com/knsv/merma...
-
hexo-tag-plantuml
hexo-tag-plantuml is a tag plugin for Hexo. It can work with plantuml to draw uml.
在Hexo中绘制uml图。
-
hexo-filter-flowchart
Generate flowchart diagrams for Hexo.
在Hexo中识别并生成由flow编写的图表。
标准流程图
使用mermaid绘制流程图
graph TD;
A-->B;
A-->C;
B-->D;
C-->D;
使用flow绘制流程图
st=>start: 开始框
op=>operation: 处理框
cond=>condition: 判断框(是或否?)
sub1=>subroutine: 子流程
io=>inputoutput: 输入输出框
e=>end: 结束框
st->op->cond
cond(yes)->io->e
cond(no)->sub1(right)->op
st=>start: 开始框
op=>operation: 处理框
cond=>condition: 判断框(是或否?)
sub1=>subroutine: 子流程
io=>inputoutput: 输入输出框
e=>end: 结束框
st->op->cond
cond(yes)->io->e
cond(no)->sub1(right)->op
时序图
sequenceDiagram
participant Alice
participant Bob
Alice->>John: Hello John, how are you?
loop Healthcheck
John->>John: Fight against hypochondria
end
Note right of John: Rational thoughts
prevail!
John-->>Alice: Great!
John->>Bob: How about you?
Bob-->>John: Jolly good!
甘特图(Gantt)
gantt
dateFormat MM-DD
title 软件开发甘特图
section 设计
需求: done,des1, 01-06,01-08
原型: active, des2, 01-09, 3d
UI设计: des3, after des2, 5d
未来任务: des4, after des3, 5d
section 开发
学习准备理解需求: crit, done, 01-06,24h
设计框架: crit, done, after des2, 2d
开发: crit, active, 3d
未来任务: crit, 5d
休息: 2d
section 测试
功能测试: active, a1, after des3, 3d
压力测试: after a1 , 20h
测试报告: 48h
UML图
PlantUML 是一个允许你快速编写一下图表的组件 :
- Sequence diagram(时序图)
- Usecase diagram
- Class diagram(类图)
- Activity diagram (here is the legacy syntax)
- Component diagram
- State diagram
- Object diagram
- Deployment diagram(BETA)
- Timing diagram(BETA)
Hexo安装hexo-tag-plantuml插件,便能使其绘制的图表在博客上展示,其原理其实使用的是 PlantUML 提供的在线服务, 只是简单地将标签包裹的代码传给服务器, 获取生成的链接, 生成 img标签替换原来的代码区域.
plantUML在线编辑网站
可使用HTML标签将其嵌套
{% plantuml %}
title Relationships - Class Diagram
class Dwelling {
+Int Windows
+void LockTheDoor()
}
class Apartment
class House
class Commune
class Window
class Door
Dwelling <|-down- Apartment: Inheritance
Dwelling <|-down- Commune: Inheritance
Dwelling <|-down- House: Inheritance
Dwelling "1" *-up- "many" Window: Composition
Dwelling "1" *-up- "many" Door: Composition
{% endplantuml %}