关于GraphEasy的简单捣腾

1. windows上安装GraphEasy

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

  1. 安装perl5
  2. 下载工具包Graph-Easy-0.76.tar.gz并解压;
  3. 进入上述解压目录,执行grap easy的编译:perl Makefile.PL(不要在gitBash中操作,会出现无法定位ExtUtils::MakeMaker的错误,务必在CMD中执行);
  4. 启用cpan脚本:perl -MCPAN -e shell
  5. 安装Graph::Easy:install Graph::Easy,若需要推出直接exit回车即可;
  6. 验证安装成功: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指定输入文件的格式,如不指定则自动检测,合法格式有:

格式说明
graphvizthe DOT language
txtGraph::Easy text
vcgVCG text
gdlGDL (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)来指定:

格式说明
asciiASCII art rendering
boxartUnicode Boxart rendering
htmlHTML
svgScalable Vector Graphics
graphvizthe DOT language
dotalias for “graphviz”
txtGraph::Easy text
vcgVCG (Visualizing Compiler Graphs - a subset of GDL) text
gdlGDL (Graph Description Language) text
graphmlGraphML

默认格式是由输出文件的后缀名决定的,如果没有后缀名默认就是ascii

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

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

格式说明
bmpWindows bitmap
gifGIF
hpglHP-GL/2 vector graphic
jpgJPEG
pclPCL printer language
pdfPDF
pngPNG
psPostscript
ps2Postscript with PDF notations (see graphviz documentation)
tgaTarga bitmap
tifTIFF bitmap

【附】

其他的一些设置及使用参照Graph-Easy

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值