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.常见的网页画图工具有哪些?一款基于云端的在线画图软件,在全球范围内都拥有大量用户。其云端协作功能出色,无需下载安装,设计师通过浏览器即可使用。多个设计师可以实时共同编辑一个设计文件,同时通过一个链接就能轻松共享设计文件,方便团队成员和客户查看和反馈。在线协作网页画图工具功能丰富,拥有简洁易用的界面和强大的设计工具,其自动布局和约束功https://blog.csdn.net/2403_89603523/article/details/144407508
2.AI绘画创作与图片处理工具全集边界AI平台边界AI是一个全能型AI生成平台,提供前沿的智能AI对话、AI写作、AI画图、AI生成及AI改写技术。我们的工具聚合了多种AI生成模型,旨在优化和创新您的内容创作流程,无论是精准的文本生成、创意绘画、高效改写或先进的生成技术,边界AI都能满足您的需求。https://ai1foo.com/draw
3.免费矢量图标网站:设计师的收藏在设计APP和网页时,矢量图标是提升视觉效果和功能指引的关键元素。尽管如此,设计师们常常需要花费大量时间在不同网站上寻找合适的矢量图标,这不仅拖慢了项目进度,也影响了团队的协作效率。为了解决这一问题,我们为你整理了8个免费的矢量图标资源网站,帮助你提高设计效率。 在线设计平台 在线设计平台是一个提供丰富https://zhuanlan.zhihu.com/p/12029762995
4.10款ai绘画网站免费的哦,千万不要错过!最近人工智能绘画技术备受瞩目,通过输入文字即可生成图像的工具相当受欢迎。现在就为大家分享五款免费且功能强大的AI绘画工具,希望不要错过它们。 以下是16款AI作画软件,并详细说明它们的优点: 第一款:万能军师 一款AI绘画工具,它通过深度学习神经网络算法,将文字转化为梦幻般的艺术作品。该工具使用了卷积神经网络技术和https://www.bilibili.com/read/cv28465358
5.文字/照片转绘画AI网站推荐,AI一键转插画图片文字/照片转绘画AI网站推荐,AI一键转插画图片 近年来,随着人工智能技术的不断发展和普及化,越来越多的人开始关注并尝试AI绘画。相较于传统手绘,AI绘画具备更高的效率和更广泛的应用领域,受到越来越多人的倾心喜爱。在这个背景下,各类AI绘画网站开始纷纷涌现,为用户提供高质量、多种样式的AI绘画服务,下面就https://baijiahao.baidu.com/s?id=1761119541705019328&wfr=spider&for=pc
6.www.zcool.com.cn/tag/ZOTM3OTQwOA==.htmlx溰絠 ,Iv鯹竣 azP}oed,凫&Q暤稃&Y昚 W夵酂B 2( ir 1 J #嵏嫈咳$a摸 d 6|NdfU蓰題o蝴 痣櫁檻qN 8q鋈鼯h7焻 3{积馔q紁柷m萹酚輗Z-7粛=藿 鯗韅靯馞{髬煆\酃 pc铑煨聻籣假 禽笡7〓r眘;皂M腔_  |呑砦^8 1鮜堁n穤p襻 7 江^皐戕探o靱https://www.zcool.com.cn/tag/ZOTM3OTQwOA==.html
7.画画画图在线画画在线画图网站速写板 suxieban.com 是一款在线画画网站及画图工具,支持画画、画图、画思维导图、流程图、草图、图片生成、素材导入、SVG导出等功能,支持图片制作、SVG制作等。用户可通过画笔、喷漆、插入文字、图形库、素材库及功能菜单快捷高效的画画、画图、制作并分享精美的图片等。https://www.suxieban.com/
8.迅捷画图迅捷画图是一个专业的在线画图网站,为用户提供简单易用的作图工具,支持在线创作流程图、在线制作思维导图、组织结构图、ER图、网络拓扑图等.在线作图,方便快捷,真正实现高效工作。https://www.liuchengtu.com/
9.10个简单的在线画图软件网站,支持AI画图!?支持多种格式:在这款在线画图软件网站中,你可以将你的图表导出为各种格式,包括 JPEG、PNG、PDF 等,甚至可以将它们嵌入到网页中。 ?支持实时协作:Creately支持多人协作编辑同一份文件。 Microsoft Visio Online Microsoft Visio Online 是 Microsoft 出品的在线画图软件网站,为用户提供强大的画图和设计功能。你可以https://pixso.cn/designskills/10-online-drawing-software-website/
10.在线画图软件免费画图工具免费的在线画图工具老少皆宜,让你把天马行空的想法变现。 立刻注册,开始画图(在新标签页或窗口中打开) 为你介绍全新的画图功能 发挥你的创造力。画图功能允许你在自己设计上画出个性化的图案,让设计更加出众。你还可以用画笔在任何设计中标出重点,给同伴留下注解。 https://www.canva.cn/draw/
11.在线CAD制图工具浩辰CAD看图王网页版浩辰在线CAD制图工具专题栏目主要汇总了CAD行业相关的在线CAD制图工具,浩辰CAD看图王网页版等内容,更多CAD教程和CAD行业资讯请点击访问浩辰CAD软件官网。http://gstarcad.com/tag/3892
12.autodraw的网页. Start Drawing Fast How-To* * The faster you click the faster it goes AutoDrawAutoDraw Start over Download Share How-To Shortcuts Artists About Privacy & Terms https://www.autodraw.com/
13.Draw.io市面上较优秀的绘图软件有:ProcessOn、Visio、亿图图示等基本都要收费的,而「Draw.io」则是一款完全免费且开源的跨平台制图画图工具!它不仅有在线网页版,也支持 Win、Mac、Linux 客户端,同时它还无需注册、不限文件数、可导出导入,以及大量丰富专业的图表模版…… 「相关软件推荐:Eagle | iSlide | ProcessOn |https://www.iplaysoft.com/drawio.html
14.在线涂鸦画板,画画,画图,画流程图,绘草图工具在线涂鸦画板,画画,画图,画流程图,绘草图工具app说明:可以画画、画图、涂鸦、画思维导图、流程图、草图等。可生成图片、生成SVG矢量图形、保存为.ssbbww文件,方便以后在本页编辑、导入图片、导入SVG矢量图形,导入本页保存的.ssbbww文件。 部分按钮的一些说明: http://www.ssbbww.com/h/cj.htm
15.在线画图工具,涂鸦画板,在线绘画板,随手涂鸦在线画图工具为您提供在线绘画板,支持在线涂鸦,在线画布涂鸦,涂鸦自定义颜色,调色功能,涂鸦颜色选择功能,在这里您可以尽情的发挥您的画画艺术天赋,画出您想要的涂鸦之作,涂鸦完成后可以保存图片到本地。https://tool.ngo.run/tuya/
16.在线画图笔刷 自由绘图 其他http://pinzhuorj.com/
17.ProcessOn思维导图流程图在线画思维导图流程图ProcessOn是一款专业在线作图工具和知识分享社区,提供AI生成思维导图流程图。支持思维导图、流程图、组织结构图、网络拓扑图、鱼骨图、UML图等多种图形,同时可实现人与人之间的实时协作和共享,提升团队工作效率。https://www.processon.com/
18.在线画板在线画图在线计算器 万年日历 抛硬币 普通文本转JS变量文本 CSS排版及压缩 图片混淆/解混淆 进制互转 文本转HTML实体 在线画板|在线画图 身份证信息获取 图片转换Base64编码 本机IP地址查询 IP地址信息查询 简繁转换 JS排版、压缩及加密 JSON文本解析 MD5加密 摩斯密码解密器 https://tool.hadsky.com/huaban.html
19.这七款程序员免费在线画图工具,贼好用!这个网站是大家一提到思维导图流程图啥的就会搬出来的“大佬级”的网站,几乎全平台都可用,Windows、MAC、在线网站都可以直接使用。 地址:https://app.diagrams.net/ 5. 迅捷画图 要论模板,论制作简单,迅捷画图也拿得出手!国产的软件,可能大家更能接受。但是,比较差的体验就是好多模板要付费,这也是我最讨厌的地https://www.51cto.com/article/744276.html
20.10款火爆的在线画图工具分享,无需下载免费用画图工具是设计师经常使用到的工具,而且现在设计师对画图工具的要求变得越来越严,很多设计师不想再花时间去一个一个地下载画图工具,没关系,我这里搜集了 10 款火爆的在线画图工具,无需下载就可以使用,分别是即时设计、Sketchpad、Draw.io、Xara Designer Pro+、Aggie、Pixilart、Lucidchart、Pixlr Editor、Infogram、Inhttps://js.design/special/article/online-drawing-tool-free.html
21.在线PS软件在线PS图片(照片)处理工具PS在线图片编辑器是一个专业精简的在线ps图片照片制作处理软件工具,绿色免安装,免下载,直接在浏览器打开就可用它修正,调整和美化图像。https://www.uupoop.com/
22.函数图像绘制工具函数图形绘制器(绘图工具)绘制给定函数的图像。多个函数分别用不同颜色绘出。函数之间请用逗号,X值与Y值取值范围分隔。输入完毕后请按“绘制图形”按钮。图形计算器允许使用图形窗格下面的控制按钮移动、缩放和居中图形。您也可以使用鼠标拖动来移动图形,用鼠标滚轮来调整其大小。图形计算器可用于可视化其他计算的结果(https://zh.numberempire.com/graphingcalculator.php
23.迷你CAD迷你CAD,是一款在网页端直接使用的「在线CAD」,不用下载和安装任何软件。直接在线打开CAD、看图画图上「www.52cad.com」http://www.52cad.com/
24.推荐给大家7款在线的绘图软件它的界面十分简洁,交互细致,上手简单。而且免注册,支持中文界面,打开浏览器就能开始画图。 采用端到端加密,绘图内容不上传到服务器,还可以支持通过网页Web链接共享协作。 在线地址:https://excalidraw.com/ 03 draw io 这个网站是大家一提到思维导图流程图啥的就会搬出来的“大佬级”的网站,几乎全平台都可用,Windohttps://www.elecfans.com/d/2006163.html
25.函数图像在线函数图像生成函数图像在线绘制生成,常见的函数图像集锦。https://zuotu.91maths.com/
26.几何画图「geogebra」在线免费的交互式 GeoGebra 几何工具: 创建三角形, 圆, 角, 作变换及更多!http://www.geogebra.org/geometry
27.AI绘画AI绘画生成器AI画图工具AI绘画生成器是一款在线使用的AI自动生成绘画软件,借助AI画图工具,只需输入文字描述即可进行智能AI作画,AI绘画生成器内置多种图像风格,满足多种场景下的AI绘画需求..https://www.gaituya.com/aiimg/
28.函数绘图计算器在线函数绘图工具介绍 使用提示: 点击"? o + ←↑↓→" 移动图像!点击“保存为SVG”将当前绘制的视图保存为svg矢量文件。 绘制方法: 直线: (如:3x - 2) 多项式: (如:x^3 + 3x^2 - 5x + 2) 三角函数: sin(x), cos(x/2), tan(2x), csc(3x), sec(x/4), cot(x) https://www.json.cn/gongju-trigonometry/graph_ploter.html
29.ExcalidrawHandExcalidraw is a virtual collaborative whiteboard tool that lets you easily sketch diagrams that have a hand-drawn feel to them.https://excalidraw.com/
30.AI繪畫生成器從陽光普照的風景到奇幻的生物,AI 繪圖生成器讓您只要使用想像力和簡單的文字提示,就能以模擬媒體 (如水彩或油畫) 的風格製作影像。使用我們的生成式 AI網頁應用程式 Firefly,您可以使用功能強大的以文字建立影像功能來快速展開創作過程,探索新的藝術途徑並製作精美的影像。您只要輸入簡單的描述來生成影像,然後加以自訂https://www.adobe.com/tw/products/firefly/features/ai-painting-generator.html
31.北京星兴海科技有限公司产品 下载 探索数学之美 数形结合 在公式编辑计算中强化所学概念与定义,更进一步 知其然知其所以然 多种计算方法对照学,曾益己所不能 有图有真相 函数特性学习与分析,尽在掌控 学以致用 自主设计几何场景,读图看分析,提升数学思维 数学之美 多种图形绘制对比学,融会贯通走捷径 http://www.mathfuns.com/
32.ai绘画在线生成网站大设AI大作是由清华大学韩伟博士带队研发,大作bigbigwork技术团队全程协助的基于人工智能语言分析的一款AI绘画平台。 全球AI绘画作品鉴赏 AI绘画作者-Sumner Makin 色彩华丽的抽象人物,动物头像,融合了人与动物意向,创造出别具一格的风格效果 1325 AI绘画作者- ?. https://www.bigbigai.com/