Применение классов CSS к строкам таблицы с помощью Sphinx и reStructuredText - PullRequest
0 голосов
/ 07 ноября 2018

У нас есть веб-сайт, созданный с использованием 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::, но, похоже, ничего не работает. Любой совет?

...