如何将“描述”解释为sphinx argparse或autoprogram中的重组文本?

时间:2014-05-15 19:44:42

标签: python python-sphinx argparse

我一直在使用sphinx argparse和sphinx autoprogramm模块使用argparse模块从python脚本中截取命令行描述符。输出通常很好,但脚本的“描述”部分被解析为单个文本段落。有没有办法通过一个reST解释器或类似的东西抛出这个,所以它至少保留了段落的空白?

1 个答案:

答案 0 :(得分:2)

看起来这个模块正在开发中。我建议查看github存储库,并提出问题。

https://github.com/ribozz/sphinx-argparse

sphinarg/ext.py中,description的格式为docutils.nodes.paragraph。与epilog相同。另一方面,usage使用nodes.literal_block

=====

在使用docutils后,我怀疑说明已输入doctree

<paragraph>
Fancy *argparse* description
...
This is an attempt to use fancier formatting.... 
</paragraph>

最终在html中作为

<p>
Fancy *argparse* description
...
</p>

它保留所有原始空格,但浏览器将其呈现为单个包装段落块。

为了保留空白,并对强调和项目符号等内容采取行动,需要通过阅读器和/或解析器进行传递。然后doctree的部分看起来更像:

<paragraph>Fancy <emphasis>argparse</emphasis> description</paragraph>...
<paragraph>This is an attempt to use fancier formatting. ....</paragraph>

我可以在一个独立的脚本中执行以下操作:

docutils.core.publish_doctree(description)

但我不知道如何在sphinx-argparse中完成。

实际上,sphinx-argparse将描述视为一个简单的段落,其精神与默认的HelpFormatter相同。