Я автоматически генерирую файлы reStructuredText, которые отображаются Sphinx в нескольких форматах, включая HTML.Файлы reStructuredText иногда содержат специальные символы HTML, такие как <
, из-за которых построителю HTML не удается выйти, что приводит к неверному выводу HTML.Это мешает мне автоматизировать процесс создания документации, заставляя меня вручную исправлять выходные файлы.Конкретный пример проблемы:
<div class="line">
<code class="docutils literal notranslate">
<span class="pre">public</span>
</code>
<span class="xref std std-ref">heap(
</span>
</div>
Это происходит на текстовом фрагменте heap(<)
.Выходные данные в настоящее время должны быть вручную установлены на:
<div class="line">
<code class="docutils literal notranslate">
<span class="pre">public</span>
</code>
<a class="reference internal" href="heap_1.html#heap-1">
<span class="std std-ref">heap(<)</span>
</a>
</div>
Я не могу найти в документации Sphinx для HTML-компоновщика никакого решения этой проблемы.Есть ли обходной путь?Исправление проблемы в исходном тексте не вариант (текст является исходным кодом, который должен компилироваться без ошибок; экранирование символов, таких как <
, может привести к сбою компиляции).Соответствующий фрагмент файла reStructuredText:
| **Extends:**
| ``public`` :ref:`heap(<) <heap/1>`
, который автоматически генерируется из фрагмента файла XML:
<extends>
<name><![CDATA[heap(<)]]></name>
<functor><![CDATA[heap/1]]></functor>
<scope>public</scope>
<file><![CDATA[heap_1]]></file>
</extends>