Swift 包
Swift Package Manager

安装
Mac + Linux

Lux

一个 Swift 库,带有一个专门的命令行工具,用于着色纯代码(例如,用于终端输出)、HTML 文件代码块或属性字符串(例如,用于 macOS 或 iOS 应用程序)。

当前支持的语言

当前提供的主题

即将添加的主题

您可以通过提出 issue 来请求语言支持或主题。您也可以自行实现语言支持。以下屏幕截图显示了 Lux 的不同用法。


macOS 应用中的 Plist



带有增强 XML 格式的 iOS 应用



Octory (新) wiki 示例



终端中的 Swift



iPad 上的 Zsh。来自 Scripting OSX 的一个脚本,用于公证一个命令行工具



终端中的 Zsh



快速示例

使用以下 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">&lt;key&gt;</span><span class="plist-key-name">properties</span><span class="plist-tag">&lt;/key&gt;</span>
<span class="plist-tag">&lt;dict&gt;</span>
    <span class="plist-tag">&lt;key&gt;</span><span class="plist-key-name">Type</span><span class="plist-tag">&lt;/key&gt;</span>
    <span class="plist-tag">&lt;string&gt;</span><span class="plist-key-value">Input</span><span class="plist-tag">&lt;/string&gt;</span>
    <span class="plist-tag">&lt;key&gt;</span><span class="plist-key-name">InputType</span><span class="plist-tag">&lt;/key&gt;</span>
    <span class="plist-tag">&lt;string&gt;</span><span class="plist-key-value">List</span><span class="plist-tag">&lt;/string&gt;</span>
    <span class="plist-tag">&lt;key&gt;</span><span class="plist-key-name">IsAllowed</span><span class="plist-tag">&lt;/key&gt;</span>
    <span class="plist-tag">&lt;true/&gt;</span>
<span class="plist-tag">&lt;/dict&gt;</span>

然后您可以在 CSS 文件中自定义这些类。这个 wiki 页面 描述了每种格式的 CSS 类。

注意:对于 HTML 文本,该库将 **HTML 字符串作为输入**。在 HTML 中,&&amp; 指定,尖括号用 &lt; 表示 <,用 &gt; 表示 >。因此,当使用 HTML 注入器时,如果提供纯文本作为输入,您可以调用其函数 escapingHTML()。否则,当输入已经过 HTML 编码时,无需执行任何操作。

对于命令行工具 inject 命令,默认行为是在注入颜色之前替换这些特殊字符。如果您已经有一个 HTML 编码的字符串作为输入,则可以使用 --no-escape-html 标志来更改此行为。为了转义这些字符,Lux 使用以下扩展


如何安装它

Homebrew

使用以下命令。

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" 的错误,您可以查看此解决方案

注意

Swift 包

首先在您的文件 *Packages.swift* 中导入该包。

let package = Package (
    ...
    dependencies: [
        .package(url: "https://github.com/ABridoux/lux", from: "0.1.0")
    ],
    ...
)

然后您可以在文件中 import Lux


如何使用它

命令行

Swift 包

特别感谢

感谢 Lux 的所有贡献者,特别是 Damien Rivet,他在有时间的时候会进行代码审查。此外,非常感谢 swift-argument-parser 背后的团队,他们一直在做着令人难以置信的工作。此外,非常感谢 John Sundell 的几篇关于 API 开发的文章,以及 Splash 库及其所有贡献者。

致谢

徽标使用的字体:Flashlight by Bexxtype]

贡献

报告错误

Lux 旨在成为社区项目,欢迎任何人贡献。由于它仍然是一个年轻的项目,可能会出现一些错误,或者某些文本没有正确着色。如果您遇到此类问题,请提出一个 issue 来描述它,并尝试添加一个用例来重现该错误。希望它能在接下来的版本中得到解决。

添加新的语言或主题

您可以在此处阅读如何向 Lux 添加新语言。有关主题化的 wiki 页面即将推出。

其他