前言
本文将就如何利用Typora在md文档中直接通过代码实现绘图的学习体会进行分享,希望能对感兴趣的朋友有所帮助。
本次分享的内容如下:
前言
1. Typora代码绘图简介
2. 绘制流程图概述
2.1 利用flow代码块绘制流程流程图
2.2 利用mermaid代码块绘制流程图
3. 绘制序列图概述
3.1 利用sequence代码块绘制序列图
3.2 利用mermaid代码块绘制流程图
4. 绘制类图概述
5. 绘制状态图概述
6. 绘制实体关系图概述
7. 绘制甘特图概述
8. 绘制饼图概述
9. 绘制用户旅程图概述
结尾
参考资料
1. Typora代码绘图简介
一、背景
Markdown作为一种轻量级的标记语言,由于其“易读易写、纯文本格式编写、语法简单、容易上手”的特性,已经得到非常广泛的应用,尤其是深受开发人员和学生群体的钟爱,他们会利用Markdown编辑器来撰写技术类md文档(技术博客、技术文档、学习笔记等)。
当在我们撰写技术类md文档时,有时会遇到需要在文档中展示一些特定图(如:流程图、序列图、类图、状态图、甘特图、饼图等),比较常见的传统实现方式是在文档中插入图片文件。其实现步骤大致如下:
- Step1:找到并安装好一个绘图软件;
- Step2:利用该绘图软件绘制好符合要求的图;
- Step3:导出该图的图片文件(如png格式),并存放在可访问的指定位置;
- Step4:在md文档中插入该图的图片文件(访问路径);
- Step5:对md文档中该图片文件的显示位置和显示比例根据需要进行相应调整;
- Step6:保存md文件,至此达成目标。
可以看出,这种传统实现方式存在一些不足:操作步骤比较繁琐;实现效率较低;尤其是当涉及图的数量较多时,会导致整体md文档的文件数量增多、总文件大小增大;如果是撰写技术博客,还会涉及到这些图片文件的网络存储及访问带来的问题。
有没有一种可以克服传统实现方式的一些不足的新的实现方式呢?回答是肯定的,因为Markdown扩展语法是支持在md文档中直接通过代码绘制特定类型图的。
二、Typora代码绘图介绍
Typora就是一款能较好支持代码绘图的Markdown编辑器。它非常好用、功能强大,集成了 Markdown绘图扩展,支持在md文档中直接通过代码来绘制流程图、序列图、类图、状态图、实体关系图、甘特图、饼图、用户旅程图等图。
注:建议采用最新版本的Typora,支持绘图更为完善。
Typora代码绘图的操作步骤是:
- Step1:在md文档指定位置插入一段绘图代码块,该代码块经渲染后即可展示相应图;
- Step2:保存该md文件即可。
很明显,代码绘图方式操作更为简单、实现效率更高、不需要额外的绘图软件、md文档文件大小较小、不涉及图片文件的保存和访问问题。虽然目前支持的代码绘图的类型还不多,但相信随着技术的发展,会越来越趋于完善,得到更广泛的应用。
三、Typora代码绘图的实现方式
Typora代码绘图的通用语法如下:
![93895cf5a365a2e5d28b1f47e0188599.png](https://i-blog.csdnimg.cn/blog_migrate/884f480b1853bf17ee130fefa4ac2d14.jpeg)
Typora目前支持如下三类代码块来绘制并展示图:
![5e5c34e3bb7ad93122b198e4f4531f71.png](https://i-blog.csdnimg.cn/blog_migrate/509d82604acef8b1c3196b13f68d6f88.jpeg)
注1:目前最新版本(v0.9.92beta)的Typora已经支持最新版本(v8.5.2)的mermaid,支持的mermaid图类型包括:流程图、序列图、类图、状态图、实体关系图、甘特图、饼图、用户旅程图等。
四、Typora软件绘图设置
要使 Typora 支持代码绘图,需要对 Typora 软件进行相应设置:从 Typora 的【文件】-【偏好设置...】-【Markdown】-【 Markdown扩展语法】下启用 图表 (序列图、流程图和Marmaid图) 复选项(如下图示),并重启 Typora 生效。
![805b27ca2e31ccda5b472825451bef73.png](https://i-blog.csdnimg.cn/blog_migrate/f21fc8ffd54f0770b3dec6d1adb8affa.jpeg)
注:当 Typora 将 Markdown 文档导出为 HTML、PDF、epub、docx 文件格式时,相关渲染图也将包括在内;但是当 Typora 将 Markdown 导出为当前版本的其他文件格式时,相关渲染图将不包括在内。
2. 绘制流程图概述
2.1 利用flow代码块绘制流程图概述
一、整体语法及说明
利用 flow代码块 绘制流程图(Flowchart Diagrams)的整体语法如下:
![6923db1af966ea7cd4de5c65df8dfc09.png](https://i-blog.csdnimg.cn/blog_migrate/b1db6460a36a4a237a76ae127bd27e1d.jpeg)
说明:上述 flow代码块 会自动被 flowchart.js 解析和渲染。
二、样例
样例代码如下:
![8ff529bfc236816bee2ed3584e69484e.png](https://i-blog.csdnimg.cn/blog_migrate/bd3151795cb6172db245f20ed43926a7.jpeg)
经 flowchart.js 解析和渲染后的流程图效果如下:
![b4e45535566a85c2a8b0ceae89f50f04.png](https://i-blog.csdnimg.cn/blog_migrate/8ca204a67a8da11036f66b8e799518bb.jpeg)
2.2 利用mermaid代码块绘制流程图概述
一、整体语法及说明
利用 mermaid代码块 绘制流程图(Flowchart Diagrams)的整体语法如下:
![3c05703725b6c6d87d33378e2daf4605.png](https://i-blog.csdnimg.cn/blog_migrate/2645f2ba48b679644407eab9b39d7e0a.jpeg)
说明:上述 mermaid代码块 会自动被 mermaid 解析和渲染。
二、样例
样例代码如下:
![6d9e97d696583c84f7ba5767c5a007ea.png](https://i-blog.csdnimg.cn/blog_migrate/8f557cf7d029e97730c1414d8aea7ab9.jpeg)
经 mermaid 解析和渲染后的流程图效果如下:
![dc1e1a1abaf8f3f8a97982248f8568bd.png](https://i-blog.csdnimg.cn/blog_migrate/4e80a1355495a0e19ee3e8fb1b0c36a4.jpeg)
3. 绘制序列图概述
3.1 利用sequence代码块绘制序列图概述
一、整体语法及说明
利用 sequence代码块 绘制序列图(Sequence Diagrams)的整体语法如下:
![80a54b486c06b33729740fbdb7c8b205.png](https://i-blog.csdnimg.cn/blog_migrate/df1f50f2fd45b487d95b9802efa5d092.jpeg)
说明:上述 sequence代码块 会自动被 js-sequence 解析和渲染。
二、样例
样例代码如下:
![40112e3369db19eb5a02865bb8fb2127.png](https://i-blog.csdnimg.cn/blog_migrate/420b45244e5951a573169103717edf37.jpeg)
经 js-sequence 解析和渲染后的序列图效果如下:
![bbcc56239270b7ce5191377658172104.png](https://i-blog.csdnimg.cn/blog_migrate/12beb816d96a6f1c9605833082208879.jpeg)
3.2 利用mermaid代码块绘制序列图概述
一、整体语法及说明
利用 mermaid代码块 绘制序列图(Sequence Diagrams)的整体语法如下:
![fdbe7cf80f1f15a07a4786de0e82e2c2.png](https://i-blog.csdnimg.cn/blog_migrate/96c6cb11f620ca4947f35ed66d19e4f3.jpeg)
说明:上述 mermaid代码块 会自动被 mermaid 解析和渲染。
二、样例
样例代码如下:
![1f88b2261ef674e42ce560f76ec5025e.png](https://i-blog.csdnimg.cn/blog_migrate/8efcdd7caf0d22d31565029fc7f53ff6.jpeg)
经 mermaid 解析和渲染后的序列图效果如下:
![60c597a1f93837b92ab9ef48bee33cc3.png](https://i-blog.csdnimg.cn/blog_migrate/0af7656243fc1deb55c9b9c07df0f3ea.jpeg)
4. 绘制类图概述
一、整体语法及说明
利用 mermaid代码块 绘制类图(Class Diagrams)的整体语法如下:
![cb0d755f1702c083fb46111319d24bfa.png](https://i-blog.csdnimg.cn/blog_migrate/0600d276ecf95f504fdab78df37c79e8.jpeg)
说明:上述 mermaid代码块 会自动被 mermaid 解析和渲染。
二、样例
样例代码如下:
![63043c5d45394fe0ede2f9157fdf695f.png](https://i-blog.csdnimg.cn/blog_migrate/d58ccde0a321f3fe14f637b233c33a30.jpeg)
经 mermaid 解析和渲染后的类图效果如下:
![14952ac43e53a2d6184266cb2e43a68e.png](https://i-blog.csdnimg.cn/blog_migrate/108d4d0bbbbd72ae0e3507e87dc06a88.jpeg)
5. 绘制状态图概述
一、整体语法及说明
利用 mermaid代码块 绘制状态图( State Diagrams)的整体语法如下:
![6c3ecb6bbeb17292d08fbd2baee92e78.png](https://i-blog.csdnimg.cn/blog_migrate/04c5dd3660fef2dadab0273a31d0b78d.jpeg)
说明:上述 mermaid代码块 会自动被 mermaid 解析和渲染。
二、样例
样例代码如下:
![31aa0db50c132392d9f2a317c8f44bb6.png](https://i-blog.csdnimg.cn/blog_migrate/933ba30a2eaff611ac033a5472956e48.jpeg)
经 mermaid 解析和渲染后的状态图效果如下:
![885322d0baa808413099618799ee1df4.png](https://i-blog.csdnimg.cn/blog_migrate/b319fae42602eea776173f6264b10a17.jpeg)
6. 绘制实体关系图概述
一、整体语法及说明
利用 mermaid代码块 绘制实体关系图(Entity Relationship Diagrams)的整体语法如下:
![75b521b7fa1c9e749cb0c20412928a12.png](https://i-blog.csdnimg.cn/blog_migrate/2a6af99779a0143cdb99b51b051a17e3.jpeg)
说明:上述 mermaid代码块 会自动被 mermaid 解析和渲染。
二、样例
样例代码如下:
![3605308703c7bdf61df4cc0412cf8fd8.png](https://i-blog.csdnimg.cn/blog_migrate/8c066be934f51f8db201e42e75e67f9b.jpeg)
经 mermaid 解析和渲染后的实体关系图效果如下:
![34ca990ea208cd9fb059ba5348de7dfe.png](https://i-blog.csdnimg.cn/blog_migrate/1ab6612c2053b4efe33363549b704647.jpeg)
7. 绘制甘特图概述
一、整体语法及说明
利用 mermaid代码块 绘制甘特图(Gantt Diagrams)的整体语法如下:
![7d30494914f31115caa4fd6d9fbebe3b.png](https://i-blog.csdnimg.cn/blog_migrate/03576988657e084d1f859fc280586192.jpeg)
说明:上述 mermaid代码块 会自动被 mermaid 解析和渲染。
二、样例
样例代码如下:
![cf8196c2e64c2e43b5fcbf9a5316e40e.png](https://i-blog.csdnimg.cn/blog_migrate/826f9955533b0cb9221b91818855311b.jpeg)
经 mermaid 解析和渲染后的甘特图效果如下:
![7b682b163d32556254a278020c909cdb.png](https://i-blog.csdnimg.cn/blog_migrate/255b4de59bb24efab0f5dcd6e5319972.jpeg)
8. 绘制饼图概述
一、整体语法及说明
利用 mermaid代码块 绘制饼图(Pie Chart Diagrams)的整体语法如下:
![1ffa9f2666cf74f089e699697d3c54e9.png](https://i-blog.csdnimg.cn/blog_migrate/9b4f91bcb079b5366fed9caf3485786a.jpeg)
说明:上述 mermaid代码块 会自动被 mermaid 解析和渲染。
二、样例
样例代码如下:
![72f4bccfbbcbffda998908bf3c7c0c9e.png](https://i-blog.csdnimg.cn/blog_migrate/582a44f9a9b96f1e9275c2315f38c5d7.jpeg)
经 mermaid 解析和渲染后的饼图效果如下:
![03546b393334451bf0a568cdb3972484.png](https://i-blog.csdnimg.cn/blog_migrate/1db4c5470504f637bf821ccef9c15b95.jpeg)
9. 绘制用户旅程图概述
一、整体语法及说明
利用 mermaid代码块 绘制用户旅程图(User Journey Diagrams)的整体语法如下:
![b6de0742b890358aff87c152c315a136.png](https://i-blog.csdnimg.cn/blog_migrate/c116603d5f2a92aa17774c5e16c1d58d.jpeg)
说明:上述 mermaid代码块 会自动被 mermaid 解析和渲染。
二、样例
样例代码如下:
![faa8bc294648a756cd5ae401b0e1fa20.png](https://i-blog.csdnimg.cn/blog_migrate/84f31c433e00b9d11333e2f57b499f51.jpeg)
经 mermaid 解析和渲染后的用户旅程图效果如下:
![a1464a2354c0805320f1106230fd8152.png](https://i-blog.csdnimg.cn/blog_migrate/491bd94d2301c3a6df801ba9bdcd2bad.jpeg)
结尾
通过上面内容的介绍,相信感兴趣的朋友们已经对利用Typora在md文档中直接通过代码绘图有了一个整体的概念和印象,后续我将会针对绘制不同类型的图逐一进行详细介绍,敬请大家关注后续文章!
本文为原创,是我在头条上发布的第一篇文章,如果文章对您有所帮助,喜欢的话就点个赞加关注支持一下哈:) 如果有问题也可以评论私聊我,我会尽力给予回复。
参考资料
撰写本文参考了如下资料:
![2d9055542491edf15f68e220475b7bdb.png](https://i-blog.csdnimg.cn/blog_migrate/5f1b1292c40c568666b5657ec5f81b30.jpeg)