2012-10-23 2 views
10

Я использую sphinx для генерации документации html для проекта. Я широко использую field lists.Превышение предела имени поля по умолчанию в sphinx/docutils

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

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

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

Я создал docutils.conf файл в корневом каталоге документации со следующим содержимым:

[general] 
dump_settings: 1 
dump_internals: 1 

[html4css1 writer] 
field_name_limit: 40 

Файл считывается при запуске сфинкса. Настройки и внутренние параметры печатаются - из-за значений в разделе [general]. Среди напечатанных значений field_name_limit напечатано, чтобы иметь значение 40. Несмотря на это, обертка, которую я описал, все еще встречается в выходе html.

Как установить значение field_name_limit, чтобы получить желаемый результат?

+1

Вы пробовали подход из моего ответа? – bmu

+0

FWIW, в версии Sphinx v 1.6.6, соблюдается установка из docutils.conf. – collapsar

ответ

0

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

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

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

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

+0

В Sphinx 1.6.6 этот подход не будет жизнеспособен, так как Writer отображает имя и значение поля в двух разных строках таблицы. – collapsar

+0

Это не работает, потому что обертка реализована в docutils html writer, которая генерирует различные элементы html, см.: Https://github.com/docutils/docutils/blob/84f7b36275804d110e05ac75688960e6f340e698/docutils/docutils/writers/html4css1/ __init __. ру # L916 – marbu

0

Один из способов сделать это, чтобы переопределить настройки в пользовательских сфинкса строитель класс, расширяющий оригинальный HTML строитель, и установить self.settings.field_name_limit = 0 в prepare_writing(self, docnames) функции. Тем не менее, это немного перебор, если у вас уже есть собственный класс строителя ...

Смежные вопросы