Как использовать автоперечислитель во вложенных списках (reStructuredText)

Как создать следующий список в reStructuredText, используя символ автоматического перечисления (#)?

1. one
 a. one_a
 b. one_b
2.two
 a. two_a
  I. one_a_i
 b. two_b

В приведенном выше списке первый уровень списка — десятичный, второй уровень — нижний альфа-канал, а третий — верхний латинский. Я хотел бы иметь возможность указать это, а также использовать автоматический перечислитель, чтобы я мог легко изменить порядок элементов в списке или добавить новый элемент в середину списка без необходимости изменять значения каждого пункт в списке.

Можно ли указать автонумератору, какой тип форматирования использовать, с разными типами для каждого уровня вложенности в списке?


person Michael Altfield    schedule 15.07.2020    source источник


Ответы (1)


  1. Вы должны использовать правильный пробел для вложенных списков.
  2. Вы можете указать, как отображать перечисление вложенных списков с пользовательскими стилями. См. также list-style-type.
  3. Я рекомендую использовать отступ в 4 пробела для ясности.

остальное

.. rst-class:: enumlist

#.  one

    #.  one_a
    #.  one_b

#.  two

    #.  two_a

        #. one_a_i

    #.  two_b

CSS

ol.enumlist {
    list-style-type: decimal;
}
ol.enumlist ol {
    list-style-type: lower-alpha;
}
ol.enumlist ol ol {
    list-style-type: upper-roman;
}

HTML-рендеринг

Визуализация HTML

person Steve Piercy    schedule 15.07.2020
comment
так что... невозможно указать форматирование данного уровня гнезда в самой разметке reST? CSS обязателен? Как это работает при построении выходных данных, отличных от HTML? - person Michael Altfield; 15.07.2020
comment
reST не имеет ничего общего с тем, как отображается стиль списка, кроме отображения <ol>, <ul> или <dl> в HTML. Отрисовка списков веб-браузером по умолчанию и CSS определяют стиль списка. Числа, диски, круги, пули и т. д. не являются жестко запрограммированными, как искусство ASCII. Для любого другого вывода вам придется применить стиль, если вывод даже поддерживает стили. - person Steve Piercy; 15.07.2020
comment
ну, это неверно, потому что вы можете указать тип стиля в reST с цифрой, представленной в списке, например 1. или a.. Однако, если вы это сделаете, он не будет автоматически перечисляться. - person Michael Altfield; 15.07.2020
comment
Конечно, если вы вырвете мой комментарий из контекста, который вы изначально спрашивали об автоперечислении, только тогда ваше утверждение будет правильным. Однако вы спрашивали только о рендеринге reST автоматически-перечисленных списков, а не об ручном перечислении. Конечно, docutils может распознавать различные синтаксис пронумерованных вручную списков и Sphinx выведет их соответственно. - person Steve Piercy; 16.07.2020
comment
правильно, причина, по которой я создал этот вопрос, заключалась в том, чтобы выяснить, как указать как [a] числовой тип стиля, так и [b] использовать автоперечисление в reST. который я обнаружил явно отсутствующим в документе, на который вы ссылаетесь. Я думаю, что это просто невозможно :( Спасибо за ваш ответ - person Michael Altfield; 16.07.2020