VHS:用代码生成终端GIF进行集成测试和演示

你是否遇到过需要为你的CLI工具进行演示或者集成测试的情况?VHS正是为此而生的一款工具,它能够通过编写代码生成终端GIF,让你的演示更加生动形象。
开始使用
首先,安装VHS,然后创建一个新的 .tape
文件。
vhs new demo.tape
用你喜欢的编辑器打开这个 .tape
文件。
vim demo.tape
Tape文件由一系列命令组成,这些命令是VHS在虚拟终端上执行的指令。所有可能的命令可以在命令参考中查看。
# 输出GIF的路径
Output demo.gif
# 设置一个1200x600的终端,字体大小为46px
Set FontSize 46
Set Width 1200
Set Height 600
# 在终端中输入命令
Type "echo 'Welcome to VHS!'"
# 暂停一会儿,增加戏剧效果
Sleep 500ms
# 按回车运行命令
Enter
# 让输出展示一会儿
Sleep 5s
完成后,保存文件并将其交给VHS处理。
vhs demo.tape
搞定!你应该能在目录中看到一个名为demo.gif
的新文件(或者你在Output
命令中指定的文件名)。
设置
Set
命令允许你更改终端的全局设置,比如字体设置、窗口尺寸和GIF输出位置。
设置必须在tape文件的顶部进行。任何在非设置或非输出命令后应用的设置(除了TypingSpeed
)将被忽略。
设置Shell
用Set Shell <shell>
命令设置shell
Set Shell fish
设置字体大小
用Set FontSize <number>
命令设置字体大小。
Set FontSize 10
Set FontSize 20
Set FontSize 40
设置字体
用Set FontFamily "<font>"
命令设置字体
Set FontFamily "Monoflow"
设置宽度
用Set Width
命令设置终端宽度。
Set Width 300
设置高度
用Set Height
命令设置终端高度。
Set Height 1000
设置字母间距
用Set LetterSpacing
命令设置字母间距。
Set LetterSpacing 20
设置行高
用Set LineHeight
命令设置行高。
Set LineHeight 1.8
设置打字速度
Set TypingSpeed 500ms # 500ms
Set TypingSpeed 1s # 1s
设置每次按键之间的打字速度(秒)。例如,0.1
的打字速度将导致每个字符之间有0.1秒
(100毫秒)的延迟。
这个设置也可以用@<time>
语法覆盖每个命令。
Set TypingSpeed 0.1
Type "100ms delay per character"
Type@500ms "500ms delay per character"
设置主题
用Set Theme
命令设置终端的主题。主题值应该是一个包含基础16种颜色和前景+背景的JSON字符串。
Set Theme { "name": "Whimsy", "black": "#535178", "red": "#ef6487", "green": "#5eca89", "yellow": "#fdd877", "blue": "#65aef7", "magenta": "#aa7ff0", "cyan": "#43c1be", "white": "#ffffff", "brightBlack": "#535178", "brightRed": "#ef6487", "brightGreen": "#5eca89", "brightYellow": "#fdd877", "brightBlue": "#65aef7", "brightMagenta": "#aa7ff0", "brightCyan": "#43c1be", "brightWhite": "#ffffff", "background": "#29283b", "foreground": "#b3b0d6", "selection": "#3d3c58", "cursor": "#b3b0d6" }
你也可以按名称设置主题:
Set Theme "Catppuccin Frappe"
通过运行vhs themes
获取完整列表。
设置内边距
用Set Padding
命令设置终端框架的内边距(像素)。
Set Padding 0
设置外边距
用Set Margin
命令设置视频的外边距(像素)。
Set Margin 60
Set MarginFill "#6B50FF"
设置窗口栏
用Set WindowBar
命令设置终端窗口栏的类型(Colorful, ColorfulRight, Rings, RingsRight)。
Set WindowBar Colorful
用VHS生成终端GIF不仅能够直观地展示CLI工具的功能,还可以在集成测试中发挥重要作用。试试这个工具,让你的终端演示更上一层楼吧!
最后嘛,我感觉VHS真的是个挺好用的工具,尤其是对那些需要经常演示和测试CLI工具的开发者来说,简直就是福音。如果你也有类似的需求,不妨试试看!