GitHub - autobashcraft/cli

AutoBashCraft

AutoBashCraft (ABC) 是一个旨在自动化从嵌入在Markdown文件中的bash代码块创建屏幕录制的工具。它非常适合教育工作者、开发人员和内容创作者,他们希望轻松地用视觉方式演示bash脚本或命令。

AutoBashCraft将创建一个Docker运行时来执行Markdown文件中定义的bash命令。这样,您就不会对主机系统进行持久更改。bash命令的输出将被捕获并转换为屏幕录制。然后,屏幕录制可以嵌入到Markdown文件中,并在任何Markdown查看器中查看。

要求

  • docker
  • node.js

用法

您可以使用NPX轻松执行AutoBashCraft,自动从Markdown文件中定义的bash代码块创建屏幕录制。

运行AutoBashCraft:使用NPX执行应用程序,指定Markdown文件的路径。

npx autobashcraft@latest path/to/your/markdown-file.md

查看结果:执行后,屏幕录制和其他输出将存储在与Markdown文件相邻的“assets”目录中。

Markdown语法

在您的Markdown文件中,使用以下注释语法定义AutoBashCraft的操作:

exec() - 执行后续代码块中编写的bash命令

此命令用于在终端中运行bash命令。遵循此标签后的代码块内容将在bash shell中执行。

<!--@abc: exec() -->
```bash
echo "Hello, AutoBashCraft"

[![AutoBashCraft Example](https://imagedelivery.net/8B08sdLvw783CQcaKhUoYw/7b2da2e3-c0a5-4ab2-4110-b1da39ff8200/public)](https://github.com/autobashcraft/cli/blob/main/examples/exec_test/assets/exec_test_1.gif)

`create({"path":string})` - 创建具有指定内容的新文件

使用此命令在指定路径创建新文件。代码块的内容将写入新文件。

#!/bin/bash

echo "Content for the new file"
<!--@abc: exec() -->
```bash
cat newfile.sh
chmod +x newfile.sh
./newfile.sh

[![AutoBashCraft Example](https://imagedelivery.net/8B08sdLvw783CQcaKhUoYw/aa49bddc-061e-488d-a5d2-1823ef137100/public)](https://github.com/autobashcraft/cli/blob/main/examples/create_test/assets/create_test_2.gif)

`browse({"url":string})` - 在浏览器中打开指定URL

`browse`命令用于在Web浏览器中打开指定的URL。这对于演示在本地服务器上运行的应用程序或基于Web的交互特别有用。


[![AutoBashCraft Example](https://imagedelivery.net/8B08sdLvw783CQcaKhUoYw/856d9d04-fb34-43b9-48fc-3f30be0db300/public)](https://github.com/autobashcraft/cli/blob/main/examples/browse_test/assets/browse_test_0.gif)

`spawn({"command": string})` - 启动后台进程

使用`spawn`命令在容器运行时内启动后台进程。这对于运行应该继续在后台执行的命令非常有用。

完整内容请查阅原文。 使用init命令停止当前的容器运行时,并使用指定或默认的基础镜像初始化一个新的运行时。请注意,使用bash脚本启动的容器不会受到影响,但使用spawn启动的后台进程将需要重新启动,因为init将停止和移除当前的容器运行时并启动一个新的。

### 示例

请参阅上面的**快照**示例。

### `config(ConfigType)` 更改AutoBashCraft的配置

使用`config`命令在AutoBashCraft中自定义其行为。该命令接受一个`ConfigType`对象,允许详细配置各种功能。

#### 用法

在您的Markdown文件中插入一个带有`config`命令和您期望的设置的注释块:

echo "Hello, AutoBashCraft"
echo "Hello, AutoBashCraft"

(opens new window)

<!--@abc: config({
  asciinema: {
    speed: 2,
    cols: 100,
    rows: 20,
    typingPause: 0.001,
    promptPause: 1,
  },
  withDocker: false,
  debug: true,
  basePath: "your_custom_path",
}) -->

配置选项 #

  • asciinema: 调整录屏录像。
    • speed: 播放速度。
    • cols: 终端列数。
    • rows: 终端行数。
    • typingPause: 输入后暂停。
    • promptPause: 命令后暂停。
  • withDocker: 使用Docker执行命令。
  • debug: 启用更多详细输出的调试模式。
  • basePath: 指定工作区的自定义基本路径。只有没有任何前导“/”或“./”的相对路径可能有效。

一旦设置,配置将在处理Markdown文件期间持续存在,直到显式更改。

想法 #

链接 (opens new window)

贡献 #

我们欢迎对AutoBashCraft的贡献。

许可证 #

该项目根据MIT许可证许可。