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

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

【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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
 跨浏览器,可兼容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、付费专栏及课程。

余额充值