我想将手册页解析为更结构化的形式,但我找不到手册页使用的数据格式的正确规范。我应该寻找 troff 或 nroff 或 groff 还是其他东西?groff(7) 说
groff 系统具有经典 roff 的所有功能,但添加了许多扩展。
这些扩展是各种预处理器,例如 tbl 还是其他东西?
到目前为止我找到了以下资源:
特罗夫网站- 这有历史注释和一些教程,以及一些死链接。
手册页(7) (Linux) - 这提供了有关手册页中各部分的指南(很有用),但它没有讨论数据格式。
独立于排字机的 TROFF和特罗夫用户手册- 这些都相当老了,所以我无法真正判断这些论文中的 troff 和实践中的差异是什么。
手册页使用的确切格式是否有明确的规范?
答案1
没有单一来源的形式。
有些人用 roff 编写手册页。几乎没有人使用原始 roff;但是人们使用各种 roff 宏来编写手册页,例如an
或mdoc
。这些宏集彼此之间存在很大差异。但现在很多人根本不要在 roff 中编写手册页。
人们还可以在 Docbook XML、perl 的 POD、TE X、T e χinfo、ASCIIDOC、纯 HTML 或其他系统中编写手册页。
其中一些,尤其是 Docbook XML,首先是相当结构化的,并且到 roff 的转换是有损的。如果 roff 是源,您最好忽略它们,并直接使用实际的源形式,这可能已经具有您正在寻找的结构化形式。
确实,有没有roff 中介在查看其中一些表格时。 (所有上述内容都可以直接转换为 HTML 等格式,而无需经过中间 roff 阶段。再次值得注意的是,使用 Docbook XML 编写的手册页甚至可以使用多个 WWW 浏览器直接以 XML 形式查看,无需 HTML 中介,如果文档书 CSS或类似的使用。)
其中许多源形式是他们自己标准化,但是手册页没有单一的通用源格式。
例子
答案2
是的。像 HTML 一样思考...但是是 HTML 之前的。基本上是一堆排版宏groff
......
首先,有一些共同商定的部分 - 当然你可以添加更多......
NAME
SYNOPSIS
DESCRIPTION
OPTIONS
BUGS
AUTHOR
SEE ALSO
对于每个(以及其他任何地方),您都使用groff
排版宏语法。
例如,aTITLE HEADER
可以这样做 -
.TH [name of program] [section number] [center footer] [left footer] [center header]
或者一个SECTION HEADER
-
.SH [section name]
当然,你可以加粗、斜体、下划线等 -
.B = bold
.BI = bold alternating italic
.BR = bold alternating Roman
.I = italic
.IB = italic alternating bold
.IR = italic alternating Roman
.RB = Roman alternating bold
.RI = Roman alternating italic
您甚至可以在文本文件中发表评论 -
." This is a comment
然后是诸如段落(如<p></p>
html 标签集)之类的内容.PP
不要忘记适当地命名该文件,然后gzip
在完成后命名。
此信息(以及更多信息)来自http://www.linuxhowtos.org/System/creatingman.htm