覆盖sphinx / docutils中的默认字段名称限制

时间:2012-10-23 11:13:24

标签: python python-sphinx restructuredtext docutils

我正在使用sphinx为项目生成html文档。我大量使用field lists

生成html时,如果标签的长度最多为14个字符,则每个标签/值对将呈现为包含两个单元格的单个表行。

如果一对标签的长度超过14个字符,则标签/值将呈现为两个表格行。

我想将包装限制增加到更大的值(例如40)。我发现限制是由docutils的--field-name-limit选项控制的。但是,我找不到如何通过sphinx设置此值。

我在文档根目录中创建了一个docutils.conf文件,其中包含以下内容:

[general]
dump_settings: 1
dump_internals: 1

[html4css1 writer]
field_name_limit: 40

运行sphinx时会读取文件。打印设置和内部 - 由于[general]部分中的值。在打印值中,field_name_limit打印为值40。尽管如此,我所描述的包装仍然出现在html输出中。

如何设置field_name_limit的值以便获得所需的输出?

3 个答案:

答案 0 :(得分:2)

如果没有异议,Sphinx-1.2将支持html writer的docutils.conf。 https://bitbucket.org/birkenfeld/sphinx/commits/67682aca

答案 1 :(得分:0)

我认为你的方法不起作用,因为sphinx使用自己的html编写器。

但是,如果你调整field_name的风格,我认为它应该有用。 我(曾经)使用自定义css文件

.field-name {
    white-space: nowrap;
}

或将其设置为固定宽度。

答案 2 :(得分:0)

执行此操作的一种方法是覆盖扩展原始html构建器的自定义sphinx构建器类中的设置,并在self.settings.field_name_limit = 0函数中设置prepare_writing(self, docnames)。也就是说,这有点矫枉过正,除非你已经有了一个自定义构建器类......