1 个稳定版本
1.0.0 | 2021年1月5日 |
---|---|
0.0.0 |
|
#83 in #unicode-characters
35KB
513 行
目录
1. 这个工具做什么? 顶部 ▲
chr 是一个命令行工具,旨在提供有关 Unicode 字符的各种信息。目前,这些信息包括字符的 Unicode 转义序列及其名称、块、类别和年龄,这些信息来自 Unicode 字符数据库 (UCD)。当前版本的 13.0 UCD 是目前的主要和唯一信息来源。以后版本将添加更多属性和来源。
2. 如何安装? 顶部 ▲
您可以从上面下载适用于您的平台的独立可执行文件,并将其放置在您选择的位置。
chr 还托管在 crates.io,Rust 的官方包注册处。如果您是 Rust 开发者并且已经安装了 Rust 工具链,您可以使用 Rust 包管理器 cargo 从源代码编译来安装
cargo install chr
包管理器,如 Scoop(Windows)和 Homebrew(macOS 和 Linux),将很快得到支持。
3. 如何使用? 顶部 ▲
首次运行可执行文件时,与它捆绑的 SQLite 数据库将被解压到当前用户的家目录下。可以在路径 <home>/.chr/chr_1_0_0.db
下的隐藏目录中找到。每次使用 chr 时都会查询此数据库。它最初是在构建源代码时创建的。从互联网下载各种 UCD 文件,将相关信息复制到 SQLite 数据库中,然后压缩数据库并将其包含在可执行文件中。
$ chr -h
chr 1.0.0
© 2021 Peter M. Stahl <[email protected]>
Licensed under the Apache License, Version 2.0
Downloadable from https://crates.io/crates/chr
Source code at https://github.com/pemistahl/chr
chr is a command-line tool that gives
information about Unicode characters.
USAGE:
chr [FLAGS] <CHARS>... --name <NAME>
FLAGS:
--no-paging Disables paging for the terminal output
-c, --colorize Provides syntax highlighting for the terminal output
-h, --help Prints help information
-v, --version Prints version information
OPTIONS:
-n, --name <NAME> Searches for characters by their name as
stated in the Unicode Character Database
ARGS:
<CHARS>... One or more characters separated by blank space
该工具主要用于搜索特定字符的信息。所有感兴趣的字符,用空格分隔,可以同时提供给chr。条目按其Unicode转义序列升序排列。
$ chr Ä @ $ ß !
1. ! U+0021
EXCLAMATION MARK
Basic Latin Other Punctuation
since 1.1
2. $ U+0024
DOLLAR SIGN
Basic Latin Currency Sign
since 1.1
3. @ U+0040
COMMERCIAL AT
Basic Latin Other Punctuation
since 1.1
4. Ä U+00C4
LATIN CAPITAL LETTER A WITH DIAERESIS
Latin-1 Supplement Uppercase Letter
since 1.1
5. ß U+00DF
LATIN SMALL LETTER SHARP S
Latin-1 Supplement Lowercase Letter
since 1.1
还可以通过UCD中的官方名称搜索字符。
$ chr --name honey
>>> 2 results found
1. 🍯 U+1F36F
HONEY POT
Miscellaneous Symbols and Pictographs Other Symbol
since 6.0
2. 🐝 U+1F41D
HONEYBEE
Miscellaneous Symbols and Pictographs Other Symbol
since 6.0
在支持的终端中,长结果列表会自动分页,以便更容易浏览。为此目的使用了minus crate。其关键控制已在项目的子部分中进行了文档化。如果在不支持的终端中自动关闭分页不起作用,或者它没有按预期工作,可以使用--no-paging
标志显式关闭。结果列表也可以使用--colorize
标志着色,这在支持的终端中会产生更美观的输出。
4. 如何构建? 顶部 ▲
为了自行构建源代码,您需要在您的计算机上安装稳定版本的Rust工具链,以便cargo,Rust包管理器可用。
git clone https://github.com/pemistahl/chr.git
cd chr
cargo build
源代码附带了一些集成测试。要运行它们,只需说
cargo test
5. 替代方案 顶部 ▲
已经存在一个名为cha(rs)的替代工具,它旨在实现类似的目的。目前,它提供的字符属性比chr更多。不幸的是,它缺少适当的命令行界面、分页、着色,而且我认为展示的信息也没有很好地组织。它还将其仓库中的所有UCD文件捆绑在一起,这是不必要的,并阻碍了维护和未来的更新。
对于chr,只需更新新UCD版本的URL即可。假设UCD文件之间的格式在版本之间没有变化,这就是为chr提供最新数据的全部内容。数据展示侧重于可读性,并专注于现在最基本属性。最后但同样重要的是,chr由SQL数据库支持,这使得可以执行复杂的查询,尤其是在功能扩展的后期版本中。
6. 想要贡献吗? 顶部 ▲
即使chr处于非常早期的发展阶段,如果您想为它做出贡献,我也鼓励您这样做。您有关于酷炫功能的想法吗?或者您已经发现了任何错误吗?请随意提出问题或发送拉取请求。非常感谢。:-)
依赖关系
~27–39MB
~585K SLoC