Переопределение ограничения имени поля по умолчанию в sphinx/docutils

Я использую sphinx для создания html-документации для проекта. Я широко использую списки .

При генерации html каждая пара ярлыков/значений отображается как одна строка таблицы с двумя ячейками, если длина метки не более 14 символов.

Если метка одной пары длиннее 14 символов, метки/значения отображаются как две строки таблицы.

Я хочу увеличить предел упаковки до большего значения (например, 40). Я обнаружил, что ограничение контролируется опцией --field-name-limit docutils. Однако я не могу найти, как установить это значение через сфинкс.

Я создал файл 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, чтобы получить желаемый результат?

Ответ 2

Я думаю, что ваш подход не работает, потому что sphinx использует собственный html-writer.

Однако я думаю, что это должно сработать, если вы приспособите стиль для field_name. I (один раз) использовал пользовательский файл css с

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

или установите его на фиксированную ширину.

Ответ 3

Один из способов сделать это - переопределить параметр в пользовательском классе строителя sphinx, расширяя оригинальный html-конструктор, и установите self.settings.field_name_limit = 0 в prepare_writing(self, docnames). Тем не менее, это немного перебор, если у вас уже есть собственный класс строителя...