• 1. windows上安装GraphEasy
  • 2. 关于语法的简单摸索
    • 2.1 创建文件
    • 2.2 生成输出文件

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指定输入文件的格式,如不指定则自动检测,合法格式有:

格式 说明
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。

关于GraphEasy的简单捣腾相关推荐

  1. graph-easy使用简介

    Graph::Easy 是一个处理图形DSL的Perl模块,它有如下功能: 提供了一种易懂,可读性很强的图形描述语言 一种支持 ASCII Art 的基于网格的布局器 可以导出为 Graphviz, ...

  2. VS2015安装简单的C#单元测试

    <软件工程>开课已经三周了,三周的上课感觉就是老师教授的概念性东西少了不少,基本就是贯穿"做中学"的教学理念,三周的时间让我学到了挺多东西,很多东西都是课本没有的. 这 ...

  3. graph-easy 纯文本图绘制工具(表格或流程图)

    Ubuntu版本:ubuntu-gnome-16.04-desktop-amd64,gnome版 --------------------------------------------------- ...

  4. php简单的功能模块,php中mysql模块部分功能的简单封装

    php中mysql模块部分功能的简单封装 复制代码 代码如下: class mysql { private $db; // datebase connect private $result; // m ...

  5. Wamp以及其数据库的简单使用

    原文链接 https://blog.csdn.net/shenmirenlcy/article/details/51167988 2016年04月16日 14:39:46 shenmirenLcy 阅 ...

  6. 入了个树莓派2,发个捣腾htpc的记录

    入了个树莓派2,发个捣腾htpc的记录,自己留着备忘,也供入树莓派2的同学参考. 准备工作-硬件: 电源:5V2A,1A之类的我没有试过,不知道会不会有问题.1代树莓派好像是600ma的,2代升级了c ...

  7. php爬取邮箱,SAS爬虫的简单应用-爬取帖子下的邮箱,给他们发一封邮件...

    前一段时间,看到了某些帖子下,有好多邮箱,然后我就想啊,如果我能给这些邮箱发一封邮件邀请关注我公众号,我的关注是不是会蹭蹭的往上涨...那么问题来了,如何可以批量get到网页上的邮箱呢?于是关于&qu ...

  8. java实现计算器框架_[Java小程序] 实现简单计算器

    这学期没事学了一点点Java,想写个程序练手,因为只学了一点点,所以暂时只能先写个实现简单功能的计算器练练.感觉写完后不是很好,如果路过的哪位高手给点建议,小弟万分感激啊. 由于期末来了,没太多时间, ...

  9. 在docker上安装部署tomcat项目 超简单,拿来主义

    在docker中部署tomcat,非常简单,而且省去了手动安装jdk等步骤,只需要将war包复制在容器tomcat实例中的webapps下面即可.以下将详细讲解流程: 在windows中打好包以后用w ...

  10. Linux下tomcat的安装与卸载以及配置(超简单)

    无敌简单的几步 1.安装 //首先你需要下载好tomcat包 sudo tar -xvzf apache-tomcat-7.0.85.tar.gz(这里是包名) -C 你要放的位置 2.卸载 rm - ...

最新文章

  1. yolov4源码_YOLOv4特征提取网络——CSPDarkNet结构解析及PyTorch实现
  2. Client使用c#和odp.net连接server oracle
  3. 网页无法显示验证码的方法
  4. Windows 8 系统安装教程
  5. 用CSS写出一个下拉菜单小箭头
  6. strncpy与strcpy的区别与注意事项
  7. 王道操作系统考研笔记——2.3.3 进程互斥的硬件实现方法
  8. zlib库compress和uncompress函数的使用方法
  9. js中遇到的一个错误Uncaught SyntaxError: missing )after argument list
  10. 廖雪峰JS教程--条件判断
  11. python怎么安装pip
  12. Linux中Vim基本用法
  13. 使用ionic2开发一个登录功能
  14. 关于Ubuntu循环登陆界面
  15. python安装失败0x80070005_win10系统运行提示0x80070005错误的解决办法
  16. 自盲化能力 Paillier和EIGamal
  17. 互联网常见错误代码(如404)
  18. python数据采集2-HTML解析
  19. 三国经典战役\三国合肥会战\三国孙权大战张辽\三国孙权一败张文远
  20. 支付宝支付-当面付和App支付

热门文章

  1. java jdk 8 中文文档
  2. 艾肯声卡调试机架安装教程与下载_2019最新推荐
  3. Java 后端自学之路
  4. cmake安装教程以及使用方法
  5. python将excel数据批量导入sqlserver数据库
  6. iPhone手机下载应用软件的区别(itunes,i4和itools)
  7. Python笔记-OpenCV图像处理和人脸识别
  8. cmd长ping记录日志和时间_ping命令结果中如何显示时间
  9. vue里面下载配置使用zepto vue中怎样使用zepto
  10. Flash安装低版本方法