从Debian软件包中提取和渲染手册
项目描述
debmans 是一个从Debian软件包中提取文档(目前为man手册)并将其转换为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...
您渲染的man手册将在 <http://localhost:8000/> 可用。
请注意,您需要来自 dpkg-dev 软件包的 dpkg-scanpackages 来运行上述测试。警告可以安全忽略。debmans 在使用正确配置的镜像时通常不需要 dpkg-dev。
常见任务
在常规镜像上运行会更正常。这将从给定的镜像中提取所有man手册并将其转换为HTML。
debmans --mirror /srv/mirror --output static extract render
这可以重复运行,并且只有提取的man手册会被渲染。
仅提取
您也可以分步骤运行该过程,例如,这将仅提取man手册
debmans -m /srv/mirror -o html extract
请注意,extract会在输出目录中创建一个缓存,以避免重新提取已找到的存档。如果HTML版本比man手册新,则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
如果提取过程被中断,这尤为重要,因为在后续运行中只会有部分man手册被渲染。
目前使用man2html渲染man手册,但可以通过-r标志更改,尽管尚未测试其他渲染器,输出可能与man2html不兼容。
静态页面渲染
模板引擎相当简单,基于Jinja2,它使用标准的{{foo}}占位符。模板位于static/template.html,应遵循debian.org的图形设计规范。
这应会生成markdown文件
debmans -o html site
使用--prefix,如果目录不在主机根目录下。
安装
可以通过pip安装debmans
pip install debmans
源代码可以在Gitlab上通过Git或作为tar包找到,或者在Debian的collab-maint存储库中。
应使用以下方式安装源代码
./setup.py install
也可以直接从源树运行
python -m debmans render
依赖项在setup.py文件中列出。
致谢
debmans由Antoine Beaupré编写,并使用Affero GPLv3许可,请参阅license以获取完整的许可。
本软件的部分灵感来自对现有工具的审查,特别是Ubuntu man手册转换器和dgilman的转换器。在sources.debian.net服务的源代码和设计中直接使用了部分内容,这也是为什么debmans使用AGPL许可的部分原因。
还要感谢Paul Wise,他推动我前进,并在导航各种工具和协议方面提供了大量帮助,使这一切得以实现。
本项目主要遵循Core Infrastructure 最佳实践,有关详细内容请参阅完整报告。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码分布
构建分布
debmans-1.0.0-py2-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 83baecff6b72ca46110718928e0a7336f0dd45608fe5115fa2dc781712b1d956 |
|
MD5 | a1e1521a698babf40e804a1ab9924625 |
|
BLAKE2b-256 | a547c30ee3fbb71eefbf3d6883dd0ae685c192fb6ed67acf2d49409c2d5c2d43 |