ish*_*shi 27
是的......要改变他们中的一个,比如说,男人:
zcat /usr/share/man/man1/man.1.gz | groff -mandoc -Thtml
Run Code Online (Sandbox Code Playgroud)
如果你想要"安装在你的电脑上的所有东西",你只需要遍历它们.对于不同的输出(例如文本),请使用不同的"device"(-T参数).
以防万一......如果'迭代'是真正的问题,你可以使用:
OUT_DIR=...
for i in `find -name '*.gz'`; do
dname=`dirname $i`
mkdir -p $OUT_DIR/$dname
zcat $i | groff -mandoc -Thtml > $OUT_DIR/$i.html
done
Run Code Online (Sandbox Code Playgroud)
使用命令man -k ''可以列出所有可用手册页的名称,这可能是优于find和zcat原手册页的数据文件; 同时,man的命令有一个选项-T, --troff-device[=DEVICE],可以生成给定的man-page部分和名称的HTML.因此,以下bash脚本将Linux中可用的所有手册页转换为HTML文件:
man -k '' | while read sLine; do
declare sName=$(echo $sLine | cut -d' ' -f1)
declare sSection=$(echo $sLine | cut -d')' -f1|cut -d'(' -f2)
echo "converting ${sName}(${sSection}) to ${sName}.${sSection}.html ..."
man -Thtml ${sSection} ${sName} > ${sName}.${sSection}.html
done
Run Code Online (Sandbox Code Playgroud)
在没有Internet访问的Intranet中,联机man-pages服务不可用,将这些文件放在静态HTTP服务器(如Nginx,启用autoindex)是一个不错的选项,其中browse和Ctrl + F可能很方便.
我建议尝试Pandoc:
$ pandoc --from man --to html < input.1 > output.html
Run Code Online (Sandbox Code Playgroud)
它生成的 HTML 既可读又可编辑,后者对我的用例很重要。
它还可以生成许多其他格式,例如 Markdown,当您不确定要提交哪种格式时,这非常有用。
该问题有一条评论说 Pandoc 无法从 转换man,但这似乎已经过时了。man对于我的示例,当前版本(2.13)的转换效果不错html。
此外,虽然公认的答案建议使用groff -mandoc -Thtml,但这对我来说并不像 Pandoc 那样好。具体来说,我想将旧的 Flex-2.5.5 手册页转换为 html。 groff(版本 1.22.4)不幸的是,破坏了所有代码示例(没有缩进,没有固定宽度字体),使它们难以阅读,而 Pandoc 将它们作为pre节带过来。此外,groff输出充满了显式内联样式,而 Pandoc 输出根本不使用 CSS,这使其成为更好的编辑起点。
(有一个现有的答案也提到了 Pandoc,我考虑将我的信息编辑到其中,但我想更多地谈谈我使用它的经验。)