推荐一个制作「ASCII 流程图」工具——Graph Easy

news/2024/5/20 10:33:50 标签: serverless

我不止一次看到类似「知乎」网站那种 Console 上直接输出这种「ASCII 文本」。

上一次我在借鉴一篇高大上的文章《Serverless实战:打造个人阅读追踪系统》 insights.thoughtworks.cn/serverless-… 时,
里面就有个流程图:

当时就想自己能不能也画一个「ASCII 文本流程图」,并且可以直接放到代码里,作为代码注释,提升下「逼格」呢?

上网一搜,还真有这种通过代码或者命令行就能实现的工具,并且还可以直接复制粘贴使用,完全符合我等程序猿的装逼需求 —— Graph Easy

Graph Easy

Graph::Easy 是一个处理图形DSL的Perl模块,它有如下功能:

  1. 提供了一种易懂,可读性很强的图形描述语言
  2. 一种支持 ASCII Art 的基于网格的布局器
  3. 可以导出为 Graphviz, VCG (Visualizing Compiler Graphs), GDL (Graph Description LAnguages) 和 GraphML 格式。
  4. 可以从 Graphviz, VCG 和 GDL 导入图像。

摘自:www.gitbook.com/book/weishu…

总之,Graph Easy 是一个很 geek 的一个绘图工具。它基于 Command Line,可以轻松的绘制 ASCII 字符图,同时还能导出成 HTML,SVG 等多种格式。

安装 Graph Easy

自用 Mac 笔记本,所以安装起来简单,只需要三条命令:

// 1. 
brew install graphviz

// 2. 安装 cpan,一路「回车」
cpan

// 3. 安装 Graph Easy
sudo cpan Graph:Easy复制代码

使用 Graph Easy

1. 来点简单的:

$ graph-easy <<< '[a]->[b]'复制代码

输出:

+---+ +---+
| a | --> | b |
+---+ +---+

2. 来点长链:

% graph-easy <<< '[a]->[b]->[c]->[d]->[e]'复制代码

输出:

3. 来个分支:

% graph-easy <<< '[a]->[b]->[c][b]->[d]->[e]'复制代码

输出:

4. 来个闭环:

% graph-easy <<< '[a]->[b]->[c]->[b]->[d]->[e]'复制代码

输出:

5. 来个合流:

% graph-easy <<< '[a]->[b]->[c][d]->[e]->[b]'复制代码

输出:

6. 流程之间需要文字说明的

% graph-easy <<< '[a]->[b]->{label:"true";}[c]->[d]->{label:"FeedBack";}[a]'复制代码

输出:

如:结点 b 到结点 c 需要加个条件说明等。

7. 当然,我们有时候需要从上至下的画流程图

% graph-easy <<< 'graph{flow:south;}[上]->[中]->[下]'复制代码

输出:

8. 如果流程图复杂点的时候,我们可以将内容存于文件中,然后读文件画流程图

% graph-easy ../test.txt复制代码

我们看看「test.txt」的内容:

9. 最后让我们实现下上文的流程图

test.txt 内如:

[Instapaper] {size: 2,7;}
[RSS(Feedly)] -> [Instapaper]{ origin: RSS(Feedly); offset: 2,0;}
[WeChat] -> [Instapaper]{ origin: WeChat; offset: 2,-6;}
[Website] -> [Instapaper]
[IFTTT]{size: 1,7;}
[Instapaper] -> [Diigo]{ origin: Instapaper; offset: 2,-2;}
[Instapaper] -> [IFTTT]{ origin: Instapaper; offset: 2,0;}
[Instapaper] -> [Evernote]{ origin: Instapaper; offset: 2,2;}
[Webtask(Serverless)]{size: 2,7;}
[IFTTT] -> [Webtask(Serverless)]{ origin: IFTTT; offset: 2,0;}
[Webtask(Serverless)] -> [Github]{ origin: Webtask(Serverless); offset: 2,-2;}
[Webtask(Serverless)] -> [ZenHub]{ origin: Webtask(Serverless); offset: 2,2}复制代码

总结

因为时间关系,没能很好的调整每个节点的相对位置和大小,并没有完全和上文一致的效果;但至少可以画出「ASCII 流程图」了,

试着复制到代码编辑器中,看看注释效果:

感觉还不错,你也可以试试哦~~~

「完」


coding01 期待您继续关注

qrcode


也很感谢您能看到这了

qrcode


http://www.niftyadmin.cn/n/1823164.html

相关文章

解决MAC地址不匹配问题

网卡MAC不匹配问题-针对VM虚拟机环境&#xff0c;物理环境差不多。 分析&#xff1a;此问题经常会出现在服务器更换网卡后&#xff0c;系统缓存没有及时更新&#xff0c;导致对MAC的物理与逻辑识别相冲突&#xff0c;解决过程如下。 启动网络时错误信息如下&#xff1a; 打开文…

关于Python veriable scope 的一点疑问

在写程序中遇到了类似于以下代码的问题&#xff1a; #不会报错 a1 def f(): print(a) f() #会报错 a1 def f(): a1 f() 转载于:https://www.cnblogs.com/vanwoos/p/8484322.html

Lab1 跨域MPLS-虚拟专网 Option C (RR)配置详解

Option C (RR&#xff09; 详解实验拓扑实验要求配置步骤R1R2R3R4R5R6R7R8R9R10实验拓扑 实验要求 本实验使用Option C完成跨域的MPLS-VPN&#xff0c;R9/10是CE&#xff0c;R1/7是PE&#xff0c;R3/5是ASBR&#xff0c;R2/6是P设备&#xff0c;R4/8是反射器RR。 所有涉及到Ro…

MongoDB复制集成员及状态转换

此文已由作者温正湖授权网易云社区发布。欢迎访问网易云社区&#xff0c;了解更多网易技术产品运营经验。复制集&#xff08;Replica Set&#xff09;是MongoDB核心组件&#xff0c;相比早期版本采用的主从&#xff08;Master-Slave&#xff09;架构&#xff0c;复制集具有很多…

hive连接mysql的配置_通过网络连接数据库模式Hive的搭建过程详解

最近在搭建通过网络直接连接数据库模式的Hive时总是在启动的时候报各种错误&#xff0c;所以今天&#xff0c;我们来总结一下这种模式的Hive的搭建过程。【数据库安装】安装mysqlyum install mysql-server -y配置&#xff1a;启动mysql服务&#xff1a;service mysqld start设置…

HDLC基础

HDLC配置HDLC简介HDLC缺省配置HDLC配置注意事项配置HDLC配置接口封装HDLC协议配置接口IP地址配置HDLC轮询时间间隔检查HDLC配置举例配置结果HDLC配置举例配置HDLC基本功能示例配置IP地址借用的HDLC示例HDLC简介 HDLC协议是一种通用的协议&#xff0c;工作在OSI参考模型的数据链…

java语言中_Java语言中与 ||与|的区别是什么

1、运算符两边的变量为boolean变量时先列出代码&#xff1a;public class Test {public static void main(String[] args) {boolean a false;boolean b true;if (a && b) {// do somethingSystem.out.println("a&&b");}if (a & b) {// do some…

结编程队-关灯小游戏-项目进度

截止至今&#xff1a; 1.利用pyhon做出了play界面 2.写出了整体格数 3.设计算法转载于:https://www.cnblogs.com/qihao10086/p/7840578.html