从debian包中提取和呈现手册
debmans的Python项目详细描述
debmans是一个从中提取文档(当前为manpages)的工具 Debian包并将其转换为HTML,以便使用 网络浏览器。
这套工具设计用于在manpages.debian.org、manpages.ubuntu.com、linux.die.net或类似服务上运行。
示例
您可以对本地apt缓存对该软件进行测试运行, 像这样:
$ ( cd /var/cache/apt/archives/ && dpkg-scanpackages . | sudo tee Packages > /dev/null ) dpkg-scanpackages: warning: package tar (filename ./tar_1.27.1-2+b1_amd64.deb) is repeat; dpkg-scanpackages: warning: ignored that one and using data from ./tar_1.27.1-2+deb8u1_amd64.deb! $ debmans -m /var/cache/apt/archives -o html -v --progress extract render site serve extracting files matching patterns: (u'man/(?:\\w+/)?man[1-9]/.+\\.[1-9]\\w*(?:\\.gz)?$',) in mirror /var/cache/apt/archives extracting packages [####################################] 100% completed inspection of 564 packages, extracted 559 files received 559 paths from extractor rendering manpages [#################################---] 92% 0d 00:00:02man2html: unable to open or read file man1/dmenu.1 rendering manpages [####################################] 100% looking for static files to render in *.mdwn Serving HTTP on 0.0.0.0 port 8000...
呈现的手册页将在<;http://localhost:8000/>;上提供。
请注意,您将需要来自 dpkg-dev运行 以上测试。可以安全地忽略这些警告。debmans没有 如果正确使用 已配置镜像。
常见任务
更正常的运行方式是在常规镜像上运行。这将提取 来自给定镜像的所有手册页并转换为HTML:
debmans --mirror /srv/mirror --output static extract render
这可以重复运行,只会呈现提取的手册页。
仅提取
您也可以一步一步地运行流程,例如 提取手册页:
debmans -m /srv/mirror -o html extract
注意,extract在输出目录中创建一个缓存以避免 重新提取已找到的存档。Render还使用缓存 如果html版本比 手册页。这些机制可以用--no-cache禁用。
debmans -m /srv/mirror -o html --no-cache extract
您可以使用-n标志进行试运行,并启用更详细的 日志记录:
debmans -v -n -m /srv/mirror -o manpages extract
仅渲染
渲染页面可以单独使用:
debmans -o html render --srcdir manpages
如果提取过程中断,这一点尤为重要, 因为只有部分手册页将在后续运行时呈现。
手册页当前呈现为 man2html但是 这可以用-r标志更改,尽管没有其他呈现程序 已测试,输出可能与man2html不兼容。
静态页面呈现
模板引擎相当简单,基于jinja2,它使用 标准{{foo}}占位符。模板在 static/template.html,应该遵循debian.org的图形 设计惯例。
这将生成标记文件:
debmans -o html site
如果目录不在主机的根目录下,请使用--prefix。
安装
debmans可以通过pip安装,使用:
pip install debmans
源代码也可以用git或tarball在Gitlab上找到,或者 在Debian的collab-maint repository上。
源代码的安装方式应为:
./setup.py install
它也可以直接从源代码树运行:
python -m debmans render
依赖项列在setup.py文件中。
致谢
debmans由Antoine Beaupre编写,并根据 affero gplv3,请参见license以获取完整的许可证。
这个软件的部分灵感来自于对现有工具的回顾。 尤其是Ubuntu manpages converter和 dgilman’s converter。这个 sources.debian.net服务源代码 设计也被直接用于某些部分,这也是部分原因 debmans是根据agpl授权的。
也要感谢保罗·怀斯对我的帮助 浏览各种工具和协议,使所有这些工作。
此项目主要遵循Core Infrastructurebest practices,请参见 full report 详细情况。