没有 HTML 替换为用于 XML 输出的 Doxygen erbatim 块

问题描述 投票:0回答:0

问题

我的一个标题中有以下片段:

/**
 * @brief Simple function.
 * 
 * @verbatim 
 *     don't want the following to be rendered as &lt: > or \> !
 * @endverbatim
 */
void simple(void) {}

我正在运行 Doxygen,在我得到的 XML 输出上:

<memberdef kind="function" id="simple8hpp_1a6624a5381d71ba485b6c59bc71214607" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">

  <detaileddescription>
<para><verbatim>*     don&apos;t want the following to be rendered as &amp;lt: &gt; or \&gt; !
* </verbatim> </para>
  </detaileddescription>

</memberdef>

<detaileddescription>
中,我原来的
>
&gt
取代了。我想要那个。我如何配置 Doxygen 以便不进行替换?

根据this answer

\verbatim
块不应该取代那些。

完整的上下文

Doxygen 实际上是由 Breathe 调用的。我正在尝试像这样创建 ReTxT 参考:

 * @brief Simple function.
 * 
 * @verbatim 
 *     don't want the following to be rendered as &lt: > or \> !
 * @endverbatim
 * 
 * @rstref2{my-reference-label, not the title here}
 * 
 */
void simple(void) {}

Breathe 的帮助展示了如何创建一个Doxygen 别名

breathe_doxygen_aliases = {
    'rstref{1}': r'\verbatim embed:rst:inline :ref:`\1` \endverbatim'
}

上面的示例创建了一个 ReTxT 交叉引用,形式如下:

It refers to the section itself, see :ref:`my-reference-label`.

我想参考表格:

It refers to the section itself, see :ref:`not the title here<my-reference-label>`.

所以

not the title here
是链接文本。

我试过像这样配置呼吸:

breathe_doxygen_aliases = {
    'rstref{1}': r'\verbatim embed:rst:inline :ref:`\1` \endverbatim',
    'rstref2{2}': r'\verbatim embed:rst:inline :ref:`\2<\1>` \endverbatim'
}

这会产生(显然正确的)以下 Doxygen 配置:

ALIASES += rstref{1}="\verbatim embed:rst:inline :ref:`\1` \endverbatim"
ALIASES += rstref2{2}="\verbatim embed:rst:inline :ref:`\2<\1>` \endverbatim"

但是在 XML 输出中,

<
>
&lt
&gt
替换:

<verbatim>embed:rst:inline :ref:`not the title here&lt;my-reference-label&gt;` </verbatim>

这中断了后续的 ReTxT 处理,我没有得到链接。

rstref{1}
别名虽然工作得很好:

<verbatim>embed:rst:inline :ref:`custom0_pe_convert` </verbatim>

我试过转义别名定义中的

<>
符号:

'rstref2{2}': r'\verbatim embed:rst:inline :ref:`\2\<\1\>` \endverbatim'

这给了我:

ALIASES += rstref2{2}="\verbatim embed:rst:inline :ref:`\2\<\1\>` \endverbatim"

但是XML还是错的:

<verbatim>embed:rst:inline :ref:` not the title here\&lt;my-reference-label\&gt;` </verbatim>

任何帮助我们非常感谢。

干杯!

python-sphinx doxygen
© www.soinside.com 2019 - 2024. All rights reserved.