我想创建一个包含BSD man-pages集合的站点,类似于man.cgi,但是静态HTML,其中包括来自ports树的所有东西。
我已经尝试从最近发布的所有OpenBSD软件包中解压缩man/
,我注意到虽然有些软件包提供了mdoc
个页面,但在man/man?/page.?
中,仅有一些在man/cat?/page.0
。
我可以对groff -mdoc -Thtml
中的mandoc -Txhtml
文件使用mdoc
或man/man?/
,但如何从cat
转换man/cat?/
个文件进入XHTML?
FreeBSD.org和NetBSD.org上的man.cgi脚本如何做到这一点?
答案 0 :(得分:0)
在MirBSD中,我们将所有在线联机帮助文件作为静态HTML(实际的网络CGI非常小)提供,并使用crafty script将nroff -Tcol foo.1 | col -x
的输出转换为XHTML /1.1 - 尽管如此,为了实现这一点,我们必须稍微调整nroff(1)和 mdoc和man macropackages(以及ms和me等)。我们只从基地发送所有联机帮助页,以及历史上的BSD文档。
另外,GNU gnroff没有-Tcol,但是-Tascii可以工作 - 但是如果要将它与gnroff输出一起使用,则可能需要相应地更改正则表达式。
编辑此文件时要格外小心:它包含正常的UTF-8内容以及额外的控制字符和无效的字节序列;如果你不小心,你的编辑将破坏它。 (我自己正在使用jupp。)
如需更多实时反馈,请随时访问MirBSD IRC频道。
至于你的原始目标:我建议只从二进制包中获取联机帮助页,因为它们经常在编译期间被更改,例如在autoconf中通过AC_SUBST,或者甚至仅作为包构建的一部分生成。