#unicode-characters #unicode #character #text

app chr

一个提供关于 Unicode 字符信息的命令行工具

1 个稳定版本

1.0.0 2021年1月5日
0.0.0 2020年6月22日

#83 in #unicode-characters

Apache-2.0

35KB
513

chr


Build Status dependency status lines of code Downloads

Crates.io Lib.rs license

Linux Download MacOS Download Windows Download

目录

  1. 这个工具做什么?
  2. 如何安装?
  3. 如何使用?
  4. 如何构建?
  5. 替代方案
  6. 你想贡献吗?

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