跳转到主要内容

从Debian软件包中提取和渲染手册

项目描述

debmans 是一个从Debian软件包中提取文档(目前为man手册)并将其转换为HTML以便用普通网页浏览器查看的工具。

该工具套件旨在在 manpages.debian.orgmanpages.ubuntu.comlinux.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 (42.6 kB 查看哈希值)

上传时间 Python 2

支持