У меня есть таблица в формате reST, в которой некоторые ячейки содержат длинные блоки текста (например, несколько абзацев или маркированные списки), и они периодически обновляются, например:
+-------+-----------------------+
|Cat | Chunk that is updated |
| | periodically. |
| | |
| | Line #2, #3, etc |
+-------+-----------------------+
|Dog | Substitution means |
| | table boilplat static |
| | |
| | Line #2, #3, etc |
+-------+-----------------------+
Чтобы избежать обслуживания шаблонной таблицыпри каждом обновлении я сначала пробовал подстановку , но это работает только для встроенных директив (например, изображения) и однострочного текста ... не для нескольких абзацев:
.. |cellb1| replace:: Chunk that is updated periodically via copy-and-paste
.. |cellb3| replace:: Substitution means table boilerplate can remain static
+-------+-----------------------+
|Cat | |cellb1| |
+-------+-----------------------+
|Dog | |cellb3| |
+-------+-----------------------+
Второй подходявляется директивой .. include :: .Это хорошо работает для нескольких абзацев, но ценой сложности (контент теперь перемещается по нескольким внешним текстовым файлам).
+-------+-----------------------+
|Cat | .. include:: xr1.txt |
+-------+-----------------------+
|Dog | .. include:: xr3.txt |
+-------+-----------------------+
list-table не помогает и не помогает csv-table (поскольку содержимое включает запятую и кавычки).
.. csv-table:: Test csv-table with multi-paragraph
:header: "a", "b", "c"
Cat,"Chunk that is updated periodically via copy-and-paste.
Line #2, #3, etc", "Kitten"
Dog,"Substitution means table boilerplate can remain static.
Line #2, #3, etc", "Puppy"
Примечание: побочная проблема возникает с csv-table
, отступ и количество столбцов влияютсинтаксический анализатор Sphinx, поэтому содержимое форматируется в виде цитаты или списка определений. [ EDIT : см. ответ ниже - из-за несовместимого отступа строки :header:
]
Есть лилучше?