Linux 命令速查
文本处理 man mandoc

mandoc

把 man 手册页格式化为文本或 HTML

返回

补充说明

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

参考链接