#page #cache #cli-tool #text-search #read #json #arch-wiki

bin+lib archwiki-rs

用于从ArchWiki读取页面的CLI工具

29个稳定版本

3.2.5 2024年4月30日
3.0.1 2024年3月4日
2.2.3 2024年1月13日
2.2.2 2023年11月1日
1.0.1 2023年5月28日

#185 in 命令行界面

MITGPL-3.0+

110KB
2.5K SLoC

archwiki-rs 📖

安装

目前,您只能从crates.io或从源代码构建此工具。

安装后,您可能想运行sync-wiki命令。

crates.io

cargo install archwiki-rs

源代码


git clone https://gitlab.com/lucifayr/archwiki-rs
cd archwiki-rs
cargo install --path .

用法

读取页面

基本请求

archwiki-rs read-page Neovim

使用不同格式

archwiki-rs read-page Neovim --format markdown

缓存

默认情况下,页面在获取后会在文件系统中进行缓存,之后对该页面的后续请求将使用该缓存。如果缓存的文件在过去14天内未被修改,则缓存会失效。

404页面未找到 (-̥̥̥n-̥̥̥ )

如果您正在搜索的页面不存在,将输出与您请求的页面名称最相似的页面列表,而不是页面内容。

archwiki-rs read-page Neovi

# output
Neovim
...

与页面名称存在时的输出不同,此输出将写入stderr而不是stdout。如果您愿意,可以创建一个程序来检查是否未找到页面,并使用stderr向用户提供有关他们可能想要输入的内容的建议。

一个类似的shell脚本的示例可以在存储库中找到,其名称为example.sh,可以使用如下方式使用:sh example.sh <page-name>

搜索ArchWiki

按标题搜索

archwiki-rs search "Emacs"

这将返回具有相似标题和URL的页面表格

搜索文本

archwiki-rs search "shell" -t

这将返回包含搜索词的页面和文本片段的表格

下载Wiki信息

页面和分类名称存储在本地以加快查找速度。使用此命令来获取所有页面和分类名称。

archwiki-rs sync-wiki

列出ArchWiki信息

列出页面

archwiki-rs list-pages

该功能输出一个样式化的类别和页面树,但如果您需要为不同的程序提供一个易于解析的列表,可以使用 -f 标志将输出扁平化为仅包含所有页面名称的换行符分隔的列表

archwiki-rs list-pages -f

您还可以将列表限制为仅包含属于特定类别的页面

archwiki-rs list-pages -c "Xorg commands"

列出分类

要对类别执行相同的操作,可以运行

archwiki-rs list-categories

列出语言

同样,对于可用语言也是如此

archwiki-rs list-languages

下载ArchWiki的本地副本

使用此命令下载 ArchWiki 的本地副本。请注意,此命令会对 ArchWiki 进行超过 10,000 次请求,因此完成需要一些时间 (-, -)…zzzZZ

archwiki-rs local-wiki ~/local-archwiki --format markdown

可能的加速方法

如果您不介意您的 CPU 和网络变得略微饱和,可以增加用于从维基获取数据的线程数量。

请注意,如果您一次性发出太多请求,可能会被 ArchWiki 限制请求速率。

archwiki-rs local-wiki -t 8

应用程序信息

您可以使用 info 命令获取有关 cache directory 的值/位置的其它信息

archwiki-rs info

要仅获取条目的值而不是其名称和描述,可以使用 -o 标志

archwiki-rs info -o

设置shell自动完成

您可以为大多数流行的 shell 生成一个完成文件,以实现自动补全功能(支持 shell 列表)。

以下示例展示了如何为 ZSH(与 oh my zsh 一起)设置自动补全。

archwiki-rs completions > /home/iusearchbtw/.oh-my-zsh/completions/_archwiki-rs

插件

以下是一些为 archwiki-rs 插件的程序列表,可以帮助您简化工作

插件开发者的有用信息

手册页面

每个命令/子命令都有一个手册页,其中包含有关命令的技术细节和行为的更多详细信息。查看 man archwiki-rs 以开始。

请注意,手册页中的所有信息都不保证正确。如果您发现任何错误,欢迎告知我或提交 PR。

输出JSON

对于以下命令,您可以使用 --json--json-raw 标志以获取易于解析的 JSON 格式的输出,供您的程序使用

替代方案

如果您正在使用 Arch Linux,那么此工具的一个很好的替代品是 wikiman CLI 工具,与 arch-wiki-docs 软件包结合使用

依赖关系

~12–29MB
~431K SLoC