Я создаю пользовательскую документацию, используя Sphinx с расширением Jinja и JSON, чтобы иметь гибкий шаблон.
Решения работают довольно хорошо, но некоторые команды нуждаются в небольшом дополнительном объяснении, и для этого я нашел способпоместить этот дополнительный текст в другой файл и добавить его в документацию команды с помощью директивы include, например:
Мой первый файл с шаблоном.
{% for cmd in commands %}
Here the command {{ cmd.description }}
{% if cmd.extra is defined %}
{% for line in cmd.extra %}
{{line}}
{% endfor %}
{% endif %}
{% endfor %}
Файл JSON дляэто решение
{
commands: [
{
"description": "Short description here"
"extra": [".. include:: command_extra.rst"]
}
]
}
Недостатком этого решения является то, что мне нужно иметь дополнительный файл rst
в моем дереве для каждой команды, содержащей эту дополнительную информацию, ведьма генерирует много предупреждений и делает источникболее сложным в управлении.
Решение, которое я ожидаю найти, выглядит примерно так:
Желаемый RST-файл:
{% for cmd in commands %}
Here the command {{ cmd.description }}
{% if cmd.extra is defined %}
{% for line in cmd.extra %}
{{line}}
{% endfor %}
{% endif %}
{% endfor %}
.. |command1_extra| replace::
Multi line text here
.. |command2_extra| replace::
Multi line text here
Требуемый JSON-файл:
{
commands: [
{
"description": "Short description here"
"extra": ["|command1_extra|"]
}
]
}
Существует ли какая-либо директива или расширение sphinx / rst, которая могла бы сделать возможным решение?