生成python CLI手册页

sf6xfgos  于 2022-12-28  发布在  Python
关注(0)|答案(4)|浏览(163)

我正在开发一个python CLI工具(在python2.6中使用optparse,但希望很快切换到python2.7),我即将编写手册页。我有一些生成动态手册页的经验:

  • 创建一个专用方法,该方法在pod format中组成一个字符串并将其写入文件
  • 执行pod2man命令以生成groff格式的数据,以传递给man命令

我还想生成与手册页内容相同的wiki页(使用pod,我可以通过pod2html生成html,并且可能html可以很容易地转换为wiki格式)。有人有更好的想法/流程来做这件事吗?
有一件事我发现有趣的是在这个链接:Creating Man Pages Using optparse and distutils

qmelpv7a

qmelpv7a1#

在Python中生成文档的常用方法是使用Sphinx。例如,这是Python官方文档中使用的方法。一旦设置了Sphinx文档项目(参见this tutorial),就可以通过make man从Sphinx文档文件生成手册页。还应该修改conf.py中的配置以生成适当的输出。
(It值得注意的是,虽然Sphinx是用Python编写文档的常用工具,但这并不意味着它是生成手册页的常用工具。

vdgimpew

vdgimpew2#

虽然sphinx是一个非常好的文档系统,但是它非常复杂,很难掌握,如果你需要一个很好的解决方案,我建议你看看我的项目build_manpage.py
它并不能代替正确地记录你的项目(用sphinx或者任何你选择的方法),但是它对Python程序员有一些直接的好处:

  • 您不必学习man语法。
  • 您不必学习rst语法(无论如何,总有一天您应该学习它...)
  • 您不需要维护optparser\argparser * 和 * 外部文件格式的手册页(man、rst或任何其他转换系统)。
  • 您只需向构建配置中添加一个文件,系统就会为您创建一个手册页!

如果您确实想使用一个更复杂的系统,有很多花里胡哨的东西,sphinx允许您将rst的页面转换为手册页。最近一个年轻的项目,采用与我的解析器类似的方法,扫描您的ArgumentParser以生成rst的页面,使用sphinx指令(这样您就不需要自己编写它了。(相反,我的扫描程序直接生成一个手册页)。
请注意,这现在是pull requestadd a manpage formatter in the standard library的一部分。

watbbzwu

watbbzwu3#

如果你使用的是click,你可以使用click-man,它可以从点击应用程序生成手册页。

rggaifut

rggaifut4#

有一件事我发现有趣的是在这个链接:使用optparse和distutils创建手册页
作为对你提到的帖子的直接跟进:现在可以使用argparse-manpage项目了。

相关问题