【Makedown Flow】使用 Flowchart.js 实现文本绘制简单 SVG 流程图表

本文介绍了如何利用 Flowchart.js 库在 Markdown 文件中创建和展示简单的 SVG 流程图表。SVG 是一种基于 XML 的矢量图形格式,支持多种显示对象。Flowchart.js 则允许通过文本描述来绘制流程图,并解析成 SVG 图像。文章详细讲解了流程图的元素定义、元素连接以及 Markdown 中的 Flowchart 语法示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【Makedown Flow】使用 Flowchart.js 实现文本绘制简单 SVG 流程图表

SVG(Scalable Vector Graphics,可缩放矢量图形)

可缩放矢量图形(英语:Scalable Vector Graphics,SVG)是一种基于可扩展标记语言(XML),用于描述二维矢量图形的图形格式。SVG 由 W3C 制定,是一个开放标准。

SVG 主要支持以下几种显示对象:

类型 示例
矢量显示对象 矩形、圆、椭圆、多边形、直线、任意曲线
嵌入式外部图形 PNG、JPEG、SVG 等
文字对象

Flow Chart(流程图)

流程图能够直观的表示一些处理逻辑和顺序,是表示算法思路的一种极好的方式。

千言万语不如一张图。

流程图可以分为以下四种类型:

  • 文件流程图
  • 数据流程图
  • 系统流程图
  • 程序流程图

一般来说,流程图的常用的表示有:

关键节点 说明 图形表示
开始 / 结束 代表一个流程开始和结束 圆角矩形
处理 表示流程图中的一个处理或者步骤 矩形
判断 对一个条件进行判断抉择 菱形
输入 / 输出 表示信息与外界的交互 平行四边形
工作流方向 变成流程图执行逻辑 箭头
预定义 表示决定下一个步骤的一个子进程 两个上下边重合的嵌套矩形

其它常用的流程图符号:

常见流程图符号

flowchart.js

flowchart.js 是一个通过分析流程图文本,绘制简单 SVG 图像显示流程图的库(JavaScript)。

流程图的组成是图示+逻辑,所以 flowchart.js 存在元素的定义和元素的连接:

Flow 元素定义

元素定义形式:


成员=>类型: 内容[:>链接]

示例:
    id_start=>start:        这是一个开始的图例
    id_operation=>operation: 这是一个操作的图例,你可以点击跳转:>https://cn.bing.com
    id_condition=>condition: 这是一个判断的图例
    id_end=>end:       这是一个结束的图例,但我可
                              以随便换行!!

上面的 [ ] 表示可选择添加。

::: alert-info

注意:
    上面有空格的地方可以输入多个空格(至少要有一个空格)。
    但是没有空格的地方一定要连起来(不能添加空格)。

:::

表示定义一个流程图节点类型的成员

支持的元素:

元素 说明 图例
start 开始 圆角矩形
end 结束 圆角矩形
operation 操作 矩形
subroutine 预定义(子程序) 两个上下边重合的嵌套矩形
condition 判断(条件) 菱形
inputoutput 输入输出 平行四边形
(content) 图例上显示的文本内容(不是可定义的图例类型),可以换行
(url) 图例文本上的超链接(不是可定义的图例类型),可选添加

Flow 元素连接

元素连接形式:


成员[(yes | no)]->成员[->成员[(yes | no)]]
   
    id_start=>start:        这是一个开始的图例
    id_operation=>operation: 这是一个操作的图例,你可以点击跳转链接:>https://cn.bing.com
    id_condition=>condition: 这是一个判断的图例
    id_end=>end:       这是一个结束的图例,但
               我可以随便换行!!
示例:
    id_start->id_operation->id_condition
    id_condition(yes)->id_end
    id_condition(no)->id_operation

上面的 [ ] 仅在成员是 condition(判断类型)时才能添加,而且只能是小写的 yesno

Makedown 中示例 Flow 语法

主要框架


```mermaid

flowchat
元素定义

元素连接
```


```mermaid

flowchat
id_start=>start: 开始(start)
id_end=>end: 结束(end),可以点击:>https://cn.bing.com
id_operation=>operation: 操作(operation)
id_subroutine=>subroutine: 子程序(subroutine)
id_condition=>condition: 判断(condition)
id_inputoutput=>inputo

 跨浏览器,可兼容IE7--IE10, FireFox, Chrome, Opera等几大内核的浏览器,且不需要浏览器再加装任何控件。  多系统兼容性、可移植性:由于只包括前台UI,因此二次开发者可很方便将本插件用在任何一种需要流程图的B/S系统应用上,流程图的详细实现逻辑完全交于后台程序开发者自己实现;对于后台,只要能返回/接收能被本插件解析的JSON格式数据即可.所以本插件可用于不同的服务器语言建立的后台上.  跨领域:流程图设计器不止用在电信领域,在其它需要IT进行技术支持的领域中都有重大作用.  以下从纯技术实现层面具体描述:  页面顶部栏、左边侧边栏均可自定义;  当左边的侧边栏设为不显示时,为只读状态,此时的视图区可当作是一个查看器而非编辑器。  侧边工具栏除了基本和一些流程节点按钮外,还自定义新的节点按钮,自定义节点都可以有自有的图标、类型名称,定义后在使用可可在工作区内增加这些自定义节点。  顶部栏可显示流程图数据组的标题,也可提供一些常用操作按钮。  顶部栏的按钮,除了撤销、重做按钮外,其余按钮均可自定义点击事件。  可画直线、折线;折线还可以左右/上下移动其中段。  具有区域划分功能,能让用户更直观地了解哪些节点及其相互间的转换,是属于何种自定义区域内的。  具有标注功能,用橙红色标注某个结点或者转换线,一般用在展示流程进度时。  能直接双击结点、连线、分组区域中的文字进行编辑  在对结点、连线、分组区域的各种编辑操作,如新增/删除/修改名称/重设样式或大小/移动/标注时,均可捕捉到事件,并触发自定义事件,如果自定义事件执行的方法返回FALSE,则会阻止操作。  具有操作事务序列控制功能,在工作区内的各种有效操作都能记录到一个栈中,然后可以进行撤销(undo())或重做(redo()),像典型的C/S软件一样。  0.4版中,加入了只导出在初始载入后被编辑的流程图中,只作了增删改等变更的元素,这样可用于用户快速存储,只保存本次变更过的内容,不用重新保存整个流程。  0.5版中,结点的样式不再受到原有程序的限制,所有样式均默认为淡蓝色长方形;如果要指定为圆形,可在初始化时定义结点类型为”原有类型”+” round”;如果要指定为复合结点,则可在初始化时定义结点类型为”原有类型”+” mix”。”原有类型”+” myType”:myType可为自己写的一种特殊样式类.  0.6版中,修正了一些BUG,改善了用户操作体验,并增加在可编辑状态下时,能用键盘上DELETE按键对元素进行删除功能。  0.7版中,修正了一些BUG,增加了连线变更要连的起始结点或结束结点的功能。  0.8版,取消原来的拟物化页面,变成如今的扁平化页面,并且支持主要位置的颜色自定义功能(如果想沿用原来老版本中的拟物化页面,只需保留原来的GooFlow.css文件即可);修正0.7版中的画线BUG。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值