5 个版本 (稳定)
1.1.2 | 2023年3月28日 |
---|---|
1.1.1 | 2023年3月27日 |
1.0.0 | 2023年3月7日 |
0.1.0 | 2023年3月7日 |
#328 in 命令行界面
3MB
162 行
滚动字幕
marquee
是一个 CLI 工具,它将输入的每一行转换为“滚动字幕”风格的输出(以下为示例)。滚动字幕设计用于用户界面输出,尽管也可以使用 marquee -ld0
创建滚动字幕输出列表。
安装
使用 Cargo 安装
cargo install marquee
用法
echo "Hello World" | marquee
查看 marquee --help
了解高级用法。
--json
如果指定了 --json
标志,JSON 值如下
{
"content": "required string", // The content of the string that will be rotating
"prefix": "optional string", // The prefix before the string
"suffix": "optional string", // The suffix after the string
"rotate": "optional boolean" // If the string should rotate (default: true)
}
注意:如果同时在 JSON 中指定了 --prefix
和 prefix
,或者 --suffix
和 suffix
,则输出将采用以下形式 {global_prefix}{prefix}{content}{suffix}{global_suffix}
待办事项
以下是我计划中的待办事项(欢迎创建问题或 PR 来实现这些功能)
- 更好的文档
- 将 JSON 作为功能而不是默认启用
- 这可能需要保留
--json
参数,但会提供一个有用的消息,类似于exa
的--git
参数。 - 理想情况下,将完全删除 serde
- 这可能需要保留
- 将所有
unwrap
/expect
转换为正确处理错误 - 为 JSON 输入添加更多功能(我不完全确定这些)
speed: u64
- 消息应该旋转的速度parts: &[String]
- 应该单独旋转的部件,我认为这需要进行相当大的重写才能做得好
- 更多命令行配置
- 可能需要一个标志/子命令,基本上运行一个更好的
marquee -ld0
版本,它在输入的每一行上工作。- 这在脚本/管道中很好用,我们不想直接输出给用户,但可能希望将其保存到文件中。
- 使用
marquee -ld0
可以实现这一点,但这不是很优雅,因为它不适用于多行。 - 理想情况下,我们还希望它不需要多个线程。
- 也许我们可以创建一个函数,该函数返回一个用于所有应用的迭代器,类似于
MarqueeIter::new(line: String)
,它将是一个Iterator<Item = String>
,其中.next()
计算下一个字符串。如果未设置--no-loop
,则这将无限进行。