Как создать вложенный список в reStructuredText?

90

Я пытаюсь создать правильно вложенный список, используя следующий код (следуя документам Sphinx и documenttils ):

1. X

  a. U
  b. V
  c. W

2. Y
3. Z

Я ожидаю, что это приведет к двум OLs, но вместо этого я получаю следующий результат:

<ol class="arabic simple"> 
  <li>X</li> 
</ol> 

<blockquote> 
  <div>
    <ol class="loweralpha simple"> 
      <li>U</li> 
      <li>V</li> 
      <li>W</li> 
    </ol> 
  </div>
</blockquote> 

<ol class="arabic simple" start="2"> 
  <li>Y</li> 
  <li>Z</li> 
</ol> 

Что я делаю не так? Разве нельзя получить следующий результат?

<ol class="arabic simple"> 
  <li>X
    <ol class="loweralpha simple"> 
      <li>U</li> 
      <li>V</li> 
      <li>W</li> 
    </ol> 
  </li>
  <li>Y</li> 
  <li>Z</li> 
</ol> 
мухук
источник

Ответы:

107

Убедитесь, что вложенный список имеет отступ до того же уровня, что и текст родительского списка (или трех символов, в зависимости от того, что больше), например:

1. X

   a. U
   b. V
   c. W

2. Y
3. Z

Тогда вы получите ожидаемый результат.

ddbeck
источник
4
Похоже, что это не совсем так. В моем случае я использовал *в качестве индикатора списка, и когда я сделал отступ в следующей строке двух символов, необходимых для выравнивания с текстом родительского списка, мой список рассматривался как отдельный список внутри цитаты. Я нашел эмпирическое правило: внутренний список должен иметь отступ не менее трех символов .
Akrikos
@Akrikos Спасибо! Я обновил ответ, включив это предостережение.
ddbeck 06
36

Если вы хотите, чтобы Sphinx позаботился о нумерации за вас, сделайте это.

#. X
#. Y

   #. u 
   #. v 

#. Z
Zsoobhan
источник
6
Просто снова выделите эту деталь, поскольку она все еще применима: u и v должны иметь отступ не менее 3 пробелов (а не 2 пробела), чтобы соответствовать тексту родительского уровня. В противном случае вы получите «1. Z» вместо «3. Z».
С. Кирби
2
@ S.Kirby Также кажется, что нужно больше отступать, если используется такой элемент списка, как iii., который использует больше мест. Кажется, что текст должен быть выровнен, и, похоже, нет определенного количества пробелов, которое можно было бы использовать для всех случаев.
Zelphir Kaltstahl
3
Обратите внимание, что здесь также важны лишние пустые строки. Таким образом, вам понадобится 3 пробела для каждого элемента вложенного подсписка, а также над и под пустой строкой.
flazzarini