У нас есть веб-сайт, созданный с использованием Sphinx и reStructuredText. Хотя и не идеальный (я унаследовал этот код), это то, что до сих пор работало и служило цели. Мы пытаемся немного его расширить, и один из запросов заключался в том, чтобы лучше выделить определенные строки в таблице на основе условия (только немного контекста).
Мы заметили, что если элемент, которому требуется примененный стиль, является первым в цикле for, стиль вместо этого применяется к родительскому (<tbody>
) элементу.
Это соответствующий фрагмент кода, который не работает должным образом:
{% for codelist_item in codelist_json.data %}
{% if codelist_item.status == 'withdrawn' %}
.. rst-class:: withdrawn
* - {{codelist_item.code + " (withdrawn)"}}
{% else %}
* - {{codelist_item.code}}
{% endif %}
- {{codelist_item.name}}
...
{% endfor %}
NB: отступ правильный (соответствует тому, что в нашем первом файле)
Неработающий пример: http://reference.iatistandard.org/202/codelists/BudgetIdentifierVocabulary/
с кодом HTML:
<tbody class="withdrawn" valign="top">
<tr class="row-even">
<td>1 (withdrawn)</td>
<td>IATI</td>
<td>The budget identifier reported uses IATI budget identifier categories</td>
</tr>
Рабочий пример: http://reference.iatistandard.org/202/codelists/Currency/
<tr class="withdrawn row-even">
<td>BYR (withdrawn)</td>
<td>Belarussian Ruble</td>
<td>Withdrawn from ISO Currency codelist. Use code BYN.</td>
</tr>
Во время изучения документов Сфинкса я наткнулся на этот бит, который может быть (или, по крайней мере, звучит) уместным
http://docutils.sourceforge.net/docs/ref/rst/directives.html#id12
This allows the "classification" of individual list items (except the first, as a preceding class directive applies to the list as a whole)
Кажется, это соответствует нашей проблеме, хотя, как я уже сказал, я не совсем уверен, что это имеет к ней отношение.
До сих пор мы пытались проверить {% forloop.first %}
, перемещая rst-class::
, но, похоже, ничего не работает.
Любой совет?