<>1. windows上安装GraphEasy


 从asciiflow了解到这个工具,因为之前一看windows上好像并没有什么好用的工具来画ascii流程图,偶然找到在线asciiflow,越用越费劲,一顿翻,找到了GraphEasy,搞吧,发现好像安装没那么容易,各个教程都是千篇一律……关于windowns上的安装提及甚少!!对于一个敢于尝试(作死)的我,哼!妈的,就要弄你!不断摸索,终于搞定了U•ェ•*U,下面是教程(PS:快夸我):

* 安装perl5 <https://www.perl.org/get.html>;
* 下载工具包Graph-Easy-0.76.tar.gz
<https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/Graph-Easy-0.76.tar.gz>并解压;
* 进入上述解压目录,执行grap easy的编译:perl Makefile.PL <http://Makefile.PL>
(不要在gitBash中操作,会出现无法定位ExtUtils::MakeMaker的错误,务必在CMD中执行);
* 启用cpan脚本:perl -MCPAN -e shell;
* 安装Graph::Easy:install Graph::Easy,若需要推出直接exit回车即可;
* 验证安装成功:graph-easy -version;
<>2. 关于语法的简单摸索

<>2.1 创建文件

 下面的语法都是基于 Graph::Easy::Parser 的(使用Perl驱动也是的,只是觉得Graph::Easy::Parser更加方便)。

【节点】

节点使用[node-name]方式表示,主要有2种:

1.单节点:即单个节点,用[xx]表示,比如[a]那出来的就一个节点,如下:
+---+ | a | +---+
2.复合节点:由多个节点组成的一个符合节点,用[xx | xx | xx]表示,节点之间使用|分隔,比如[a | b | c | d],如下:
+---+---+---+---+ | a | b | c | d | +---+---+---+---+
【连接线】

节点之间使用连接线进行连接,连接线有多种,下面是一些常用的连接线:

1.单向箭头:使用->表示,比如[a] -> [b](如果有多个节点),输出如下:
+---+ +---+ | a | --> | b | +---+ +---+
2.无方向连接线:使用--表示,比如[a] -- [b],输出如下:
+---+ +---+ | a | --- | b | +---+ +---+
3.双横线单向箭头:使用==>表示,比如[a] ==> [b],输出如下:
+---+ +---+ | a | ==> | b | +---+ +---+
4.点横线单向箭头:使用..>表示,比如[a] ..> [b],输出如下:
+---+ +---+ | a | ..> | b | +---+ +---+
5.波浪线单向箭头:使用~~>表示,比如[a] ~~> [b],输出如下:
+---+ +---+ | a | ~~> | b | +---+ +---+
6.横线、点单向箭头:使用.->表示,比如[a] .-> [b],输出如下:
+---+ +---+ | a | .-> | b | +---+ +---+
7.双向箭头:使用<->表示,比如[a] <-> [b],输出如下:
+---+ +---+ | a | <--> | b | +---+ +---+
8.双横线双向箭头:使用<=>表示,比如[a] <=> [b],输出如下:
+---+ +---+ | a | <==> | b | +---+ +---+
【注解】

1.文档注释:在输入文件中同样支持注释(和普通配置文件的注释没啥区别),使用#开始,比如下面的3个注解:
# top [a] <=> [b] # mid # test
2.连接线注解:通常在节点之间连线时会在上面加一些说明表示行为说明,可以在连接线标签后面追加{label: "说明"}
(建议加上双引号,如果注解中有空格的话可能会造成阅读上的困难),比如[a] -- {label: "this is test line"} [b],效果如下:
+---+ this is test line +---+ | a | -------------------- | b | +---+ +---+
【其他设置】

设置节点颜色,这里需要生成html格式才能看到效果,比如:
node { color: red; } [ A ] { class: foo; color: inherit; }
建议在不断的选区根节点操作,这样逻辑清晰一点,内部尽量减少中文的使用,最后一个综合示例(VOD的简单概念的组合):
# Template group [Template group] -> [name] [Template group] -> {label:
"Single Template"} [Template] # Template [Template] -> [video] [Template] ->
[audio] [Template] -> [watermark] # video [video] -> [definition] [video] ->
[bitRate] [video] -> [encode] # 输出 +-----------+ +------------+ | watermark | |
encode | +-----------+ +------------+ ^ ^ | | | | +----------------+ Single
Template +-----------+ +------------+ +---------+ | Template group |
-----------------> | Template | --> | video | --> | bitRate |
+----------------+ +-----------+ +------------+ +---------+ | | | | | | v v v
+----------------+ +-----------+ +------------+ | name | | audio | | definition
| +----------------+ +-----------+ +------------+
<>2.2 生成输出文件

 从文件生成对应的图,基本语法为graph-easy [options] [inputfile [outputfile]],有如下功能:

【指定输入文件】
# 根据当前目录下的test.txt文件生成ASCII图 graph-easy test.txt # 也可以通过--input指定 graph-easy
--input=test.txt
上述的命令是等价的。

【指定输入文件的格式】

可以用--form指定输入文件的格式,如不指定则自动检测,合法格式有:

格式 说明
graphviz the DOT language
txt Graph::Easy text
vcg VCG text
gdl GDL (Graph Description Language) text
也可以使用--from_格式名的形式(如--form_txt)指定。

【指定输出文件】

输出文件是可以不指定的,会直接在控制台(DOS窗口)中展示:
# 根据当前目录下的test.txt文件生成ASCII图到test-out.txt中 graph-easy test.txt test-out.txt #
也可以通过--output指定输出文件为test-out.txt文件 graph-easy test.txt --output=test-out.txt
【指定输出样式】

GraphEasy支持的样式主要有,通过--as=xxx指定或者直接通过--样式(如--ascii)或--as_样式名(如as_ascii)来指定:

格式 说明
ascii ASCII art rendering
boxart Unicode Boxart rendering
html HTML
svg Scalable Vector Graphics
graphviz the DOT language
dot alias for “graphviz”
txt Graph::Easy text
vcg VCG (Visualizing Compiler Graphs - a subset of GDL) text
gdl GDL (Graph Description Language) text
graphml GraphML
默认格式是由输出文件的后缀名决定的,如果没有后缀名默认就是ascii。

【指定渲染输出文件的程序】

--renderer选项(默认是dot)可以指定渲染的程序,支持下面的:

格式 说明
bmp Windows bitmap
gif GIF
hpgl HP-GL/2 vector graphic
jpg JPEG
pcl PCL printer language
pdf PDF
png PNG
ps Postscript
ps2 Postscript with PDF notations (see graphviz documentation)
tga Targa bitmap
tif TIFF bitmap
【附】

其他的一些设置及使用参照Graph-Easy <https://metacpan.org/pod/Graph::Easy#NAME>。

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信