补充说明
mandoc 是 BSD 系广泛使用的手册页编译器,可解析 mdoc/man 源码并输出 ASCII、UTF-8、HTML、PDF 等格式。它也是 OpenBSD 默认的 man 实现,Linux 上常作为轻量替代安装(Debian 包 mandoc)。
典型用途:在没有 man 命令或需要导出文档时直接渲染文件,如 mandoc -Tutf8 page.1;-T lint 检查手册页语法;-T html 生成网页。系统 man 命令也可配置为调用 mandoc。
注意 mandoc 以严格的 mdoc 解析著称,对部分 GNU 扩展宏支持有限,渲染异常时可用 -I 覆盖操作系统名或换用 groff。
语法
mandoc [-T 格式] [-W 级别] [-O 选项] 文件...
选项
-T <ascii|utf8|html|lint|pdf|ps>:选择输出格式-W <level>:设置警告级别(base/style/unsupp/all)-O <选项>:输出选项,如width=80、man=%N.%S.html-K <编码>:指定输入字符编码-I os=<系统>:覆盖手册页中的操作系统名-a:在终端中分页显示
实例
# 渲染为 UTF-8 文本
mandoc -Tutf8 /usr/share/man/man1/ls.1.gz
# 检查手册页语法问题
mandoc -T lint page.1
# 生成 HTML
mandoc -Thtml -O man=%N.%S.html page.1 > page.1.html
# 控制输出宽度
mandoc -Tutf8 -O width=100 page.1
# 批量检查当前目录的手册页
for f in *.1; do mandoc -T lint "$f"; done