Mermaid,就像用Markdown码字一样,高效制作简易流图

许多工作者的日常工作中,除了写字记录,有时还会需要画一些简单的「示意图」,这些示意图会让我们的文档或报告变得形象生动,便于理解,例如下面这些图:

如果我们恰好同时对Markdown的「标记式」记录方法高度认可的话,那么有没有想过使用类似Markdown形式的语言,快速「写」一个「流图」出来?

说到Markdown,可能已经是很多朋友熟悉的一种记录语言了。在互联网时代,Markdown被广泛普及运用。很多人用Markdown写博客,写日志,写备忘,网上也有一堆支持Markdown的写作工具,例如:熊掌记(bear),iaWriter,Ulysses,DayOne,甚至印象笔记也在近几年开始支持Markdown语法。对于不少追求效率的朋友来说,Markdown是近来文字记录领域中难以忽视的方案。

那么在「绘制流图」的领域当中,也有类似Markdown的方案呢?

细细想来,流图或关系图,主要强调的是拓扑关系,流向,节点内容,而不是一些花哨的排版。这点和Markdown秉承的「重内容,重结构,轻排版」的思路有不谋而合之处。所以,火箭君这次想介绍的就是,「流图界」的Markdown语言,也被称之为Mermaid语言。

本文的目的,就在于给大家一个入门的介绍,帮助大家认识到Mermaid的威力以及上手融入工作的方法。

通过Mermaid,我们不用专门的流图工具(例如:微软的Visio),我们需要编辑的只是文本,因此不少现成的Markdown编辑器都可以用上,如果不看渲染结果,仅作编辑的话,普通文本编辑器都能胜任。

一个简单的例子,短短几行就能生成一个流图:

graphTD;

A-->B;

A-->C;

B-->D;

C-->D;

Mermaid和Markdown一样,都是纯文本格式存储的语言。纯文本文件打破了很多软件封闭格式的限制,更加利于用户掌握自己的内容。也易于我们存储,解析,发送文件内容,而不是受制于特定应用的软件或网站平台。

Mermaid的核心是一个基于JS的解析库,这意味着我们可以把Mermaid文本,直接嵌入网页中,而访问者就能直接看到渲染后的流图了。

顺便说一下,Mermaid的JS解析库,被评为2019年JSOpenSourceAwards「Themostexcitinguseoftechnology」分类下的大奖。

以后,只要页面略作调整,就能在公司官网,在线创作平台,在线文档,在线笔记之类的网页里嵌入流图了。而以往我们需要这样做:

而现在,利用Mermaid只要一步(编辑Mermaid代码)就可以了。

我们已经知道,Mermaid本质是一种标记语言,借由一个解析库将文本「翻译渲染」成「图画」。

虽然通过一个纯文本编辑器,例如:写字板,我们可以撰写Mermaid文本,但显然不能指望这样就可以「渲染」出「绘图」来。这和Markdown的原理是一样的,渲染需要专门的编辑器。好消息是,Mermaid已经被很多Markdown编辑器直接或间接支持。也就是说直接用现有的Markdown编辑器就可以上手一试了,几乎没有额外负担。

这里是部分支持Mermaid的编辑器

需要注意的是,由于Mermaid本身还在发展,并非所有特性都能被所有Markdown编辑器支持。不过,常见的流图编辑模式已经比较成熟,大多被支持。至于具体渲染效果如何,我们还是要以编辑器的实际输出为准。

目前这个Mermaid主要可支持的「绘图」有:

还是要再次提请注意,不是所有的Markdown编辑器都支持所有的绘图类型。即使编辑器支持渲染,渲染出的效果也各不相同。这点就像早期不同的浏览器会选择性支持部分的HTML网页标准一样。目前来看,主流的Markdown编辑器,至少会支持「流图」和「序列图」,至于其它类型就要看运气了。

上文提到的「Mermaid官方网页版编辑器」是一个不错的参考,从这个在线编辑器里,我们可以看到目前Mermaid全部支持的类型,以及目前处于「实验室」阶段的类型。

首先,我们要打开一个支持Mermaid的Markdown编辑器。,这里以火箭君目前最爱的Typora编辑器为例。

我们知道Markdown语法能支持代码块,所谓代码块就是一种特殊段落,其中的文字,会按照特殊的语法进行处理显示。

一般来说,例如网页标记语言,编程语言之类代码块,都会按照语法高亮显示。

Mermaid也采用了代码块进行展现和渲染。

因此,我们首先需要在编辑器里单独一行内输入```Mermaid,表示以下是Mermaid语言专属的代码块。

然后,在```这行下面按照语法,就可以撰写绘图的脚本了。

我们用「序列图」来描述一个银行存钱的过程,里面有三个角色:

通过序列图,我们可以把存钱的过程如下描述出来:

sequenceDiagram

客户->>银行柜台:我要存钱

银行柜台->>后台:改一下这个账户数字哦

后台->>银行柜台:账户的数字改完了,明天起息

银行柜台->>客户:好了,给你回单,下一位

我们注意到,只要通过->>和冒号这种简单的文本标记,就能把各种关系和方向清晰的表达出来了。

Mermaid的渲染结果如下:

同理,我们再看看,如何画一个简单的「流图」。

首先还是从输入```Mermaid开始

然后输入:

graphTD

A(起床)-->B[洗漱]

B-->C{扔硬币}

C-->|正面朝上|D[喝牛奶]

C-->|反面朝上|E[喝果汁]

我们注意到,只要也是通过纯文本的箭头符号和括号就能把一段逻辑描述清楚了。

如果有兴趣的话,我们还可以在上面的例子里自行修改,这样就能轻易扩充出更加复杂的逻辑关系。

Mermaid支持更复杂的玩法,远不止上面列出的这些,但都非常容易被理解,一般不外乎就是各种符号的组合,这点就充分继承了Markdown类语言的精髓。火箭君更喜欢称之为「文字游戏」,通过文字的组合可以表达正文内容以外,更复杂的含义,或者说某种「元信息」(metainfo)。

Mermaid详细语法参考可以参见Github上MermaidJS项目的文档:

除了描述逻辑关系的语法,Memraid还提供了简单的「换皮主题」的语法,

通过这套「换皮」语法,我们可以给每个类型的元素更换主题色,例如箭头颜色,例如流程块的背景色……特别适合,对绘图的颜值有要求,而且有折腾精神的用户使用。参考语法如下:

看到这里,如果想立刻上手试试看的话,可以用MermaidJS官方网页版编辑器立刻行动(相当于一个代码playground)

在线编辑器,本身就是一个很好的教程,里面已经分门别类列好了各种图的类型,供我们选择。而且每种图下面都有Sample代码,新手上去改改就能看到结果。

火箭君相信,需要绘制流图之类的小伙伴们,一般都会有很强的生产力需求,而不太会是仅仅出于「自嗨」,例如:我们需要用一个「序列图」来描述一段运营工作流程时,往往希望这个图能够被讨论,被迭代,最终被分发到运营人员手上,而不是画出来仅供自我欣赏。

额外值得一提的是,Mermaid有一个在线渲染的服务,我们可以把一段Mermaid代码转换为URL网址。这样,我们就可以将URL嵌入各种文档,阅读文档时,在线网址将URL翻译成图像展现出来。和普通图片上传的区别是,这个URL只是提供Mermaid代码,并没有真的上传图像到服务器上,因此也不依赖服务器是否实际存储或删除了我们的图像。这也意味着URL可以被其它Mermaid渲染服务网站接手从而产生图像。

更简单的做法是,用户双方都使用同种类型的MD编辑器,例如Typora,印象笔记,那么大家交流的效率就会更高。几十采用不同的编辑器,也只是渲染效果不同,语义逻辑应该还是一致的。

总之,Mermaid作为一个新兴的标记语言,像极了当年的Markdown。假以时日,希望Mermaid会变得更加成熟,在有专业需求的领域里,变得更加普及,成为一种「约定俗成」的高效率标准。

THE END
1.迅捷画图迅捷画图是一个专业的在线画图网站,为用户提供简单易用的作图工具,支持在线创作流程图、在线制作思维导图、组织结构图、ER图、网络拓扑图等.在线作图,方便快捷,真正实现高效工作。https://www.liuchengtu.com/
2.超级好用的5个免费在线版流程图制作网站在线画流程图的网站免登录、完全免费、跨平台这些都是它的特点,再加上还可以使用vs code开源插件,能够更大程度的优化http://draw.io的使用!对于流程图重度使用者来说,这个绝对是最佳选择!但如果像我这种业余玩家,真没有体会到有多好用~ 4.迅捷画图-专业的在线作图网站,在线画思维导图、流程图 (liuchengtu.com) https://blog.csdn.net/weixin_64612659/article/details/128570471
3.在线涂鸦画板,画画,画图,画流程图,绘草图工具在线涂鸦画板,画画,画图,画流程图,绘草图工具app说明:可以画画、画图、涂鸦、画思维导图、流程图、草图等。可生成图片、生成SVG矢量图形、保存为.ssbbww文件,方便以后在本页编辑、导入图片、导入SVG矢量图形,导入本页保存的.ssbbww文件。 部分按钮的一些说明: http://www.ssbbww.com/h/cj.htm
4.流程图制作工具和绘图软件MicrosoftVisioVisio Web 版始终保持最新状态。你永远不需要安装新的版本。 Visio Web 版构建在 Microsoft 云之上,继承了 Microsoft 365 产品中提供的许多相同的安全性、可访问性和合规性功能。 Visio 桌面应用 包含在Visio 计划 2中 通过Visio 的在线内容生态系统,从 250,000 多种形状中进行选择。 https://products.office.com/zh-cn/visio/flowchart-software
5.在线流程图画流程图用什么软件好画流程图的软件在线画流程图四川德美良工科技有限公司,在线流程图,画流程图用什么软件好,画流程图的软件,在线画流程图,欢迎咨询QQ1640318914https://www.dmlg88.com/
6.流程图绘制工具Drawio(桌面版网页版)【神兵利器】你绝对想不到VSCode 也可以画流程图了! ,绘制流程图页面 但是免费版本只能有9张文件保存,多了就得删掉旧的,或者升级为个人版或者团队版。 1.2 draw.io 英文原版地址:https://www.draw.io/ 英文界面如下: 中文用visio?】二、vscode-drawio2.1 效果 好了,上面介绍的就是网页版本的画流程图的https://www.pianshen.com/article/80391315461/
7.Draw.io在线流程图UML图绘制软件简易教程概述draw.io 是一个强大简洁的在线的绘图网站,支持流程图,UML图,架构图,原型图等图标。支持Github,Google Drive, One drive等网盘同步,https://www.jianshu.com/p/833bb9fb8a96
8.Vue中实现在线画流程图的方法vue.js最近在调研一些在线文档的实现,包括文档编辑器、在线思维导图、在线流程图等,前面的文章基于语雀编辑器的在线文档编辑与查看实现了文档编辑器。在本文,分享在Vue框架下基于metaeditor-mxgraph实现在线流程图。 实现效果 实现 1. 添加依赖 1 2 3 { "metaeditor-mxgraph": "^2.0.7" } 2. 编辑器简介 metaeditor-https://www.jb51.net/javascript/3241942de.htm
9.在线画图工具&流程图软件菜鸟工具这是一个基HTML5的在线画图工具,流程图软件,支持矢量图 & 大量图形如长方形,圆形,线条,箭头,流程图和标注图等 & 支持导出SVG/PNG/JPG & 提供插件,让在线编辑器支持插入图形,在线制作流程图.是继Microsoft Viso,draw.io,gliffy.com又一个图形软件https://c.runoob.com/more/shapefly-diagram/
10.10个简单的在线画图软件网站,支持AI画图!?表达工具与多媒体资源:这款在线画图软件网站允许混合使用各种可视化表达工具,如图片、文档,多维表格、便签、超链接等。你还可以上传音频、视频或网页链接进行标注,让思维导图更具活力和趣味性。 Lucidchart Lucidchart是一款以其卓越协作功能闻名的在线画图软件网站。无论是在设计流程图、脑图、线框图还是其他类型的图https://pixso.cn/designskills/10-online-drawing-software-website/
11.迅捷画图迅捷画图是一个专业的在线画图网站,为用户提供简单易用的作图工具,支持在线创作流程图、在线制作思维导图、组织结构图、ER图、网络拓扑图等.在线作图,方便快捷,真正实现高效工作。 评级: 0.20 票: 10 传出命中: 1749 传入命中: 0 收藏 夹: 0 跳转到 此https://www.sousuo.biz/index.php?option=com_jvld&view=detail&lid=788
12.工艺流程图组织架构图流程图如何制作在线流程图良工绘图,良功绘图,提供在线流程图、流程图如何制作、组织架构图、工艺流程图、visio流程图、泳道图、流程图制作、流程图用什么软件做、流程图模板、消防疏散示意图等信息服务。https://www.lghuitu.com/
13.Firra在线流程图思维导图Firra是一款简洁、高效的在线流程图和思维导图设计工具软件,使用Firra流程图在线工具,快速创建各类流程图、组织结构图、网络拓扑图、鱼骨图、UML图和思维导图,提升工作效率,适合各行业使用。https://firra.cn/
14.在线画图软件免费画图工具快速创建流程图和思维导图 脑子里有想法的时候就迅速画个圈,别在素材库兜兜转转。简单描出几何框架,再调整其颜色和大小,增加文本,还可以跟随思维导图的完善随时调动画框位置。 亮点一秒就圈出 将设计的高光和重点用画笔圈出来,丝滑流畅,无纸化操作胜似纸笔在握。 https://www.canva.cn/draw/
15.高中数学教案(精选10篇)(4)流程图图框的形状要规范,判断框必须画成菱形,它有一个进入点和两个退出点. 3.思考:教材第7页图所示的算法中,哪一步进行了判断? 高中数学教案6 一、教学目标 1.知识与技能 (1)掌握画三视图的基本技能 (2)丰富学生的空间想象力 2.过程与方法 https://www.ruiwen.com/word/gaozhongshuxuejiaoan.html
16.ProcessOn(1)ProcessOn是一款功能强大的在线作图工具,支持流程图(可替代Visio)、思维导图、原型图、UML图等图形的绘制,简单实用,能够很好的帮助我们梳理工作思路、提升工作效率。 (2)除支持多种类型的图形绘制之外,作为一款在线产品,ProcessOn还支持在线协作,可以基于单个文件,也可以基于文件夹,也可以创建小组,大家可以同时在各https://www.hangge.com/blog/cache/detail_1968.html
17.迅捷画图在线怎么画圆柱体?流程图样式有哪些?Word模板下载本模板为迅捷画图在线怎么画圆柱体?流程图样式有哪些?,格式为word,其他风格,可用于校园教育演讲展示,文字图片可以直接替换,使用简单方便。https://www.tukuppt.com/muban/lzdeeykg.html
18.drawiodraw.io is free online diagram software for making flowcharts, process diagrams, org charts, UML, ER and network diagramshttp://app.diagrams.net/
19.电脑上怎么绘制流程图?电脑小白也能学会的流程图制作方法既然对事情有足够了解,为什么还要画流程图呢?其一,有助于对事情有个整体把握。其二,有助于在做事情的过程中随时回顾,检查错漏。OK,那知道画流程图的必要性之后,如何从零开始画一张流程图呢?下面有个特简单的流程图绘制方法分享给你: 1、选择“迅捷流程图制作软件”作为流程图制作工具,因为它提供了在线版,无需https://m.sohu.com/a/214197369_99965907/