从debian包中提取和呈现手册

debmans的Python项目详细描述


debmans是一个从中提取文档(当前为manpages)的工具 Debian包并将其转换为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...

呈现的手册页将在<;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 converterdgilman’s converter。这个 sources.debian.net服务源代码 设计也被直接用于某些部分,这也是部分原因 debmans是根据agpl授权的。

也要感谢保罗·怀斯对我的帮助 浏览各种工具和协议,使所有这些工作。

此项目主要遵循Core Infrastructurebest practices,请参见 full report 详细情况。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何将cassandra中的行数据转换为与列相关的嵌套json   java如何使用jcr XPath在jcr:content/@jcr:data中搜索?   java在使用openCV进行安卓开发时如何利用手机的广角镜头   java解析扩展了接口,结束了一个潜在的无限循环   位置服务的@Override方法中存在java Android应用程序错误   java本地线程的用途和需求是什么   具有左右子访问的java节点树遍历   java验证JsonWebToken签名   JUL日志处理程序中的java日志记录   嵌入式Java读取给定时间段的串行数据。   java有没有办法从多个URL获取多个图像?   java线程通过等待intent阻止自己发送intent   java Spring MVC解析多部分内容请求   java JPA/Hibernate静态元模型属性未填充NullPointerException   java格式错误的字符(需要引号,得到I)~正在处理   java为什么PrintWriter对象抛出FileNotFoundException?   java Neo4j未正确保存标签   java IE不加载图像