5 个版本

0.1.5 2023年11月30日
0.1.4 2023年3月29日
0.1.3 2022年9月8日
0.1.1 2020年11月18日
0.1.0 2020年11月15日

#227命令行实用程序

MIT 许可证

77KB
1.5K SLoC

to-html

将终端通过将 ANSI 转义序列转换为 HTML 在网站上渲染的终端包装器。支持许多外壳,包括 bash、fish、ksh 和 zsh。

Crates.io Crates.io Tests

变更日志 ☑

变更日志可以在 此处 找到。

安装 🚀

如何安装 to-html 在 版本页面 上解释。

用法 📚

执行一个命令

to-html 'echo "Hello world"'

执行多个命令

to-html 'echo "Hello "' 'echo world' ls

命令可以包含外壳语法,包括管道和重定向

to-html "echo Hello world! | grep 'H' > somefile.txt"

默认外壳是 bash。使用 --shell/-s 使用不同的外壳

to-html -sfish "../" "ls"   # executed with fish

默认情况下,to-html 输出 <pre> 标签。使用 --doc/-d 生成整个 HTML 文档(包括 CSS)

to-html -d "ls --color" > output.html

默认情况下,to-html 只显示一个箭头(>)作为提示。要显示当前工作目录,请传递 --cwd/-c

to-html -c "cd .." "ls"

示例输出

~/Develop/to-html/crates $ cd ..
~/Develop/to-html $ ls
Cargo.lock  CHANGELOG.md  docs     README.md  target
Cargo.toml  crates        LICENSE  src
~/Develop/to-html $

(GitHub 上无法显示颜色)

ANSI 支持 🎨

支持的特性列表

to-html 只支持 SGR 参数(文本样式和颜色)。然而,覆盖其输出的程序,如进度条,似乎“直接工作”。请纠正我如果我是错的。

如果您需要在网站上使用更高级的终端特性,我建议您使用 xterm.js

样式表 💎

将其包含在您的网站上以获取提示的语法高亮显示

点击展开样式表
.terminal {
  background-color: #141414;
  overflow: auto;
  color: white;
  line-height: 120%;
}

.terminal .shell {
  color: #32d132;
  user-select: none;
  pointer-events: none;
}
.terminal .cmd {
  color: #419df3;
}
.terminal .hl {
  color: #00ffff;
  font-weight: bold;
}
.terminal .arg {
  color: white;
}
.terminal .str {
  color: #ffba24;
}
.terminal .pipe,
.terminal .punct {
  color: #a2be00;
}
.terminal .flag {
  color: #ff7167;
}
.terminal .esc {
  color: #d558f5;
  font-weight: bold;
}
.terminal .caret {
  background-color: white;
  user-select: none;
}

可以使用 CSS 类覆盖默认终端颜色,例如

.terminal {
  --red: #f44;
  --bright-red: #f88;
}

演示 📸

> to-html 'cargo test' "to-html 'cargo test'"

screenshot

替代方案

Gnome 终端 中,您可以定义一个键绑定以将终端内容作为 HTML 复制。

行为准则 🤝

请友好并尊重他人。这是一个每个人都可以感到安全的地方,因此我打算执行Rust行为准则

贡献 🙌

感谢您的帮助!帮助的最简单方法是提交错误报告或在问题跟踪器中提出新功能。

如果您想创建一个拉取请求,请确保满足以下要求

  • 代码有文档说明
  • 如果您添加了一个包含不安全代码的依赖项,请解释为什么需要它
  • 请尽量保持编译时间短,如果可行的话

此外,为了通过持续集成,代码必须

  • 使用 cargo fmt 正确格式化
  • 通过 cargo clippy
  • 使用最新的稳定版Rust在Ubuntu和macOS上编译。
  • 所有测试都必须通过

就这样!如果您有任何问题,请随意创建一个问题。

依赖项

~6–17MB
~199K SLoC