关于
Wikiman 是一个离线搜索引擎,用于搜索手册页、Arch Wiki、Gentoo Wiki 和其他文档。
Wikiman 提供了一个简单的界面,可以在无需精确匹配和连接互联网的情况下浏览文档。 这是通过对 wiki 进行全文搜索、对手册页进行部分名称和描述匹配, 以及对搜索结果进行模糊过滤来实现的。
默认情况下,Wikiman 只搜索系统的手册页。 按照这些说明启用可选源。
演示
安装
Arch Linux
从 Arch Linux 的 extra 仓库安装:
pacman -S wikiman
# 可选:启用 Arch Wiki
pacman -S arch-wiki-docs
如果您正在运行 Manjaro 或其他基于 Arch 的发行版,请从 Releases 标签下载最新的 .pkg.tar.zst 包,并按照这些说明将 Arch Wiki 添加为源。
sudo pacman -U wikiman*.pkg.tar.zst
Ubuntu / Debian
从 Releases 标签下载最新的 .deb 包。
sudo apt update
sudo apt install ./wikiman*.deb
Fedora / openSUSE
从 Releases 标签下载最新的 .rpm 包。
# Fedora
sudo dnf install wikiman*.rpm
# openSUSE(跳过签名验证)
sudo zypper in wikiman*.rpm
FreeBSD
从 Ports Collection 安装 textproc/wikiman:
portsnap auto
cd /usr/ports/textproc/wikiman
make install
或从 Releases 标签下载最新的 .txz 包。
pkg install wikiman*.txz
Linux 和 BSD 的手动安装
依赖项:man
、fzf
、ripgrep
、awk
、w3m
、coreutils
、parallel
# 从 GitHub 克隆
git clone 'https://github.com/filiparag/wikiman'
cd ./wikiman
# 切换到最新稳定版本(可选)
git checkout $(git describe --tags | cut -d'-' -f1)
# 可用目标:all, core, widgets, completions, config, docs
make all
# 仅适用于 BSD 用户:安装到 /usr/local 而不是 /usr
make local
# 安装 Wikiman
sudo make install
Wikiman 使用 GNU find
和 awk
,因此 BSD 用户必须安装 findutils
和 gawk
。
附加文档源
目前可用的可选源有:
- Arch Wiki (
arch
) - Gentoo Wiki (
gentoo
) - FreeBSD 文档 (
fbsd
) - TLDR 页面 (
tldr
)
由于体积较大,wiki 不随 Wikiman 一起打包。 如果您想使用它们,可以使用以下命令下载最新快照。
# 下载最新的 Makefile
curl -L 'https://raw.githubusercontent.com/filiparag/wikiman/master/Makefile' -o 'wikiman-makefile'
# Linux 示例:安装 Arch Wiki
make -f ./wikiman-makefile source-arch
sudo make -f ./wikiman-makefile source-install
sudo make -f ./wikiman-makefile clean
# BSD 示例:安装 FreeBSD 文档
make -f ./wikiman-makefile source-fbsd local
sudo make -f ./wikiman-makefile source-install
sudo make -f ./wikiman-makefile clean
安装后,如果 sources
配置变量为空,它们应该会自动启用。
要验证活动源,请运行:
wikiman -S
编译快照(数据库构建脚本)
在 build/
目录中有手动编译快照的脚本。
这些脚本可能有外部依赖项,不建议最终用户运行,而应由 Wikiman 维护者运行。您的体验可能会有所不同。
使用方法
用法:wikiman [选项]... [关键字]...
如果未提供关键字,则显示所有页面。
选项:
-
-l
搜索语言默认:en
-
-s
要使用的源默认:(所有可用的)
-
-f
要使用的模糊查找器默认:fzf
-
-q
启用快速搜索模式 -
-a
启用 AND 运算符模式 -
-p
禁用快速结果预览 -
-k
查看结果后保持打开状态 -
-c
显示来源列 -
-H
HTML 页面查看器默认:w3m
-
-R
打印原始输出 -
-S
列出可用来源并退出 -
-W
打印指定 shell 的小部件代码并退出 -
-v
打印版本并退出 -
-h
显示此帮助并退出
Shell 快捷键小部件
Wikiman 可以通过 shell 快捷键启动(默认:Ctrl+F
)。
当前命令行缓冲区将用作搜索查询。
将以下适当的行添加到您的 .bashrc
类配置文件中,使快捷键永久生效。
# bash
source /usr/share/wikiman/widgets/widget.bash
# fish
source /usr/share/wikiman/widgets/widget.fish
# zsh
source /usr/share/wikiman/widgets/widget.zsh
配置
用户配置文件位于 ~/.config/wikiman/wikiman.conf
,
备用的系统级配置文件位于 /etc/wikiman.conf
。
如果您设置了 XDG_CONFIG_HOME 环境变量,用户配置 将从那里查找。
示例配置文件:
# 来源(如果为空,使用所有可用来源)
sources = man, arch
# 模糊查找器
fuzzy_finder = sk
# 快速搜索模式(仅按标题)
quick_search = true
# 原始输出(供开发者使用)
raw_output = false
# 手册页语言
man_lang = en, pt
# Wiki 语言
wiki_lang = zh-CN
# 在 TUI 中显示预览
tui_preview = false
# 查看结果后保持打开状态
tui_keep_open = true
# 显示来源列
tui_source_column = true
# HTML 页面查看器
tui_html = xdg-open
要列出可用语言,请运行以下命令:
# 手册页(不包括英语)
find '/usr/share/man' -maxdepth 1 -type d -not -name 'man*' -printf '%P '
# Arch Wiki
find '/usr/share/doc/arch-wiki/html' -maxdepth 1 -type d -printf '%P '
# FreeBSD 文档
find '/usr/share/doc/freebsd-docs' -maxdepth 1 -type d -printf '%P '
# TLDR 页面
find '/usr/share/doc/tldr-pages' -maxdepth 1 -type d -printf '%P '
自定义来源
Wikiman 设计为可扩展的:每个来源在 sources/
目录中都有其模块。
来源模块是符合 POSIX 标准的 shell 脚本。Wikiman 调用它们的 search
函数,该函数
读取 $query
和配置变量,并将结果打印到 STDOUT。
变量的行格式为 NAME\tLANG\tSOURCE\tPATH
。
NAME
页面标题LANG
两个字母的语言代码(可包含区域设置)SOURCE
来源名称PATH
HTML 文件路径
列出可用来源时,Wikiman 将调用模块的 info
函数,该函数打印
来源的名称、状态、页面数量和路径。
贡献
如果您创建了对公众有用的来源模块,请通过 拉取请求 分享。您的拉取请求应包含:
- 模块脚本文件
sources/your-source.sh
- Makefile 配方
your-source
- 可安装的来源数据库快照
your-source-TIMESTAMP.tar.xz
- 数据库快照的构建脚本
build/your-source.sh
- 拉取请求正文中的简短描述
其他改进也欢迎!