一个 Swift 库,带有一个专门的命令行工具,用于着色纯代码(例如,用于终端输出)、HTML 文件代码块或属性字符串(例如,用于 macOS 或 iOS 应用程序)。
当前支持的语言
当前提供的主题
即将添加的主题
您可以通过提出 issue 来请求语言支持或主题。您也可以自行实现语言支持。以下屏幕截图显示了 Lux 的不同用法。
Octory (新) wiki 示例
iPad 上的 Zsh。来自 Scripting OSX 的一个脚本,用于公证一个命令行工具。
使用以下 Plist 文件
<key>properties</key>
<dict>
<key>Type</key>
<string>Input</string>
<key>InputType</key>
<string>List</string>
<key>IsAllowed</key>
<true/>
</dict>
以下是该库如何注入终端颜色的示例
\033[38;5;8m<key>\033[39m\033[38;5;161mproperties\033[39m\033[38;5;8m</key>\033[39m
\033[38;5;8m<dict>\033[39m
\033[38;5;8m<key>\033[39m\033[38;5;161mType\033[39m\033[38;5;8m</key>\033[39m
\033[38;5;8m<string>\033[39m\033[39mInput\033[39m\033[38;5;8m</string>\033[39m
\033[38;5;8m<key>\033[39m\033[38;5;161mInputType\033[39m\033[38;5;8m</key>\033[39m
\033[38;5;8m<string>\033[39m\033[39mList\033[39m\033[38;5;8m</string>\033[39m\
\033[38;5;8m<key>\033[39m\033[38;5;161mIsAllowed\033[39m\033[38;5;8m</key>\033[39m
\033[38;5;8m<true/>\033[39m\n\033[38;5;8m</dict>\033[39m"
或者 Css 类
<span class="plist-tag"><key></span><span class="plist-key-name">properties</span><span class="plist-tag"></key></span>
<span class="plist-tag"><dict></span>
<span class="plist-tag"><key></span><span class="plist-key-name">Type</span><span class="plist-tag"></key></span>
<span class="plist-tag"><string></span><span class="plist-key-value">Input</span><span class="plist-tag"></string></span>
<span class="plist-tag"><key></span><span class="plist-key-name">InputType</span><span class="plist-tag"></key></span>
<span class="plist-tag"><string></span><span class="plist-key-value">List</span><span class="plist-tag"></string></span>
<span class="plist-tag"><key></span><span class="plist-key-name">IsAllowed</span><span class="plist-tag"></key></span>
<span class="plist-tag"><true/></span>
<span class="plist-tag"></dict></span>
然后您可以在 CSS 文件中自定义这些类。这个 wiki 页面 描述了每种格式的 CSS 类。
注意:对于 HTML 文本,该库将 **HTML 字符串作为输入**。在 HTML 中,&
用 &
指定,尖括号用 <
表示 <
,用 >
表示 >
。因此,当使用 HTML 注入器时,如果提供纯文本作为输入,您可以调用其函数 escapingHTML()
。否则,当输入已经过 HTML 编码时,无需执行任何操作。
对于命令行工具 inject
命令,默认行为是在注入颜色之前替换这些特殊字符。如果您已经有一个 HTML 编码的字符串作为输入,则可以使用 --no-escape-html
标志来更改此行为。为了转义这些字符,Lux 使用以下扩展。
使用以下命令。
brew install ABridoux/formulae/lux
它将从最新版本**下载经过公证的可执行文件**。
您可以从releases下载最新版本的可执行文件。请注意,**该可执行文件已经过公证**。此外,还提供了一个经过公证的 lux 包。
解压缩文件后,您可以根据需要进行安装
install lux /usr/local/bin/
这是一个下载最新版本的程序并将其安装在 * /usr/local/bin * 中的命令。运行它来下载并安装程序的最新版本。它会删除您可能拥有的当前版本。
curl -LO https://github.com/ABridoux/lux/releases/latest/download/lux.zip && \
unzip lux.zip && \
rm lux.zip && \
install lux /usr/local/bin && \
rm lux
Lux 0.4.3 及更高版本与 Linux 兼容。您可以在 releases 中下载 tar
归档文件 "lux-linux"。如果您在执行二进制文件时遇到有关 "libswiftCore.so" 的错误,您可以查看此解决方案。
lux version
即可获取您**已安装的 lux 版本**。此外,如果您正在使用scout,您可以运行 curl --silent "https://api.github.com/repos/ABridoux/lux/releases/latest" | scout tag_name
来获取 **Github 存储库上可用的**最新版本。首先在您的文件 *Packages.swift* 中导入该包。
let package = Package (
...
dependencies: [
.package(url: "https://github.com/ABridoux/lux", from: "0.1.0")
],
...
)
然后您可以在文件中 import Lux
。
感谢 Lux 的所有贡献者,特别是 Damien Rivet,他在有时间的时候会进行代码审查。此外,非常感谢 swift-argument-parser 背后的团队,他们一直在做着令人难以置信的工作。此外,非常感谢 John Sundell 的几篇关于 API 开发的文章,以及 Splash 库及其所有贡献者。
徽标使用的字体:Flashlight by Bexxtype]
Lux 旨在成为社区项目,欢迎任何人贡献。由于它仍然是一个年轻的项目,可能会出现一些错误,或者某些文本没有正确着色。如果您遇到此类问题,请提出一个 issue 来描述它,并尝试添加一个用例来重现该错误。希望它能在接下来的版本中得到解决。
您可以在此处阅读如何向 Lux 添加新语言。有关主题化的 wiki 页面即将推出。