charm/terminal

通过简单的标记语言组织并丰富命令行输出。

1.1.5 2022-05-30 10:03 UTC

This package is auto-updated.

Last update: 2024-08-29 05:44:28 UTC


README

Charm\Terminal 是一个用于在解析标记语言的同时写入流的类。

通过在输出中添加一个非常简单的标记语言,以最少的额外工作生成漂亮的、有帮助的命令行输出。这大大简化了在终端中处理颜色的工作。

  1. 标签的作用类似于 HTML,除了它们的开始标签是 <!TAG-NAME>,结束标签是 <!>
  2. 可以使用 <!yellow underline>example<!> 将多个标签组合成一个。
  3. 标签可以嵌套。
  4. 当客户端未使用 TTY 时,不会发送 CSI 代码 - 这意味着您的输出只有在交互式使用时才会具有颜色。
  5. 标签可以用反斜杠转义,如 \<!this>

示例

$term = new Charm\Terminal(STDERR);

// Clear the screen
$term->write('<!clear>');

// Write "Hello World"
$term->write('<!bwhite>Hello<!> <!underline>World<!>\n');

描述

(new Charm\Terminal($stream))->write($output);

output 的内容写入由 stream 指向的文件流。

参数

stream

一个文件系统指针资源,通常是 PHP 常量 STDERRSTDOUT

output

您希望打印的带标记的文本。

返回值

不返回任何内容

标签参考

|---------------|-----------------------------------------------------------------| | 标签 | 描述 | |---------------|-----------------------------------------------------------------| | bold | 使文本 粗体 | | italic | 使文本 斜体 | | underline | 使文本下划线 | | strikeThrough | 使文本 删除线 | | blink | 使文本缓慢闪烁 | | fastblink | 使文本快速闪烁 | | clear | 清除整个终端窗口 | | home | 将光标移至第 1 行,第 1 列 | | clear-line | 清除光标所在行的整个行 | | clear-left | 清除光标左侧的行 | | clear-right | 清除光标右侧的行 | | pos(L, C) | 将光标移至第 L 行,第 C 列 | | negative | 反转前景色和背景色 | |---------------|-----------------------------------------------------------------|

颜色参考

|------------------|----------------|---------------------------------------------| | 标准颜色 | 亮色 | 描述 | |------------------|----------------|---------------------------------------------| | black | grey | 黑色和灰色 | | silver | white | 白色和亮白色 | | maroon | red | 红色和亮红色 | | green | lime | 绿色和亮绿色 | | olive | yellow | 黄色和亮黄色 | | navy | blue | 蓝色和亮蓝色 | | puple | fuchsia | 紫色和亮紫色 | | teal | aqua | 青绿色和亮青绿色 | | silver | white | 白色和亮白色 | |------------------|----------------|---------------------------------------------|

注意!支持的颜色完整列表可以在 src/Info/Color.php 中找到。

可以通过在颜色后缀添加 BGBackground 来设置背景颜色

$term->write("<!redBG white> This is white on red <!>");

示例

示例 #1 面向对象的使用

$terminal = new Charm\Terminal(STDOUT);
$terminal->write("<!red>This text is <!white underline>WHITE WITH UNDERLINE<!> wrapped in red<!>");

示例 #2 函数使用

Charm\term_write(STDOUT, "<!red>This will be <!underline green>green underlined<!!>");

注意

标签 <!> 将关闭上一个标签。如果您想一次关闭 3 个标签,请使用 <!!!>