如何在代码块中包含内部引用?

AZD*_*AZD 5 restructuredtext python-sphinx

在我的Sphinx .rst文档中,我有一个代码块,其中包含使用UNIX tree命令生成的产品结构的树视图:

  |?? parent
  |   |?? child
  |       |?? grandchild
Run Code Online (Sandbox Code Playgroud)

它位于代码块中,以便Sphinx保留空白.

我希望读者能够单击每个节点,以遵循描述该节点的文档部分的内部超链接.但是,:ref:在代码块内添加内容不起作用(参见下文).有谁知道如何实现这一目标?

这不起作用:

.. _parent:

Parent
------
Blah blah

.. _child:

Child
-----
Blah blah

.. _grandchild:

Grandchild
----------
Blah blah
Run Code Online (Sandbox Code Playgroud)

然后...:

|?? :ref:`parent`
|   |?? :ref:`child`
|       |?? :ref:`grandchild`
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激!

mzj*_*zjn 6

您可以使用该parsed-literal指令:

\n\n
.. parsed-literal:: \n\n   |\xe2\x94\x80\xe2\x94\x80 :ref:`parent`\n   |   |\xe2\x94\x80\xe2\x94\x80 :ref:`child`\n   |       |\xe2\x94\x80\xe2\x94\x80 :ref:`grandchild`\n
Run Code Online (Sandbox Code Playgroud)\n\n

这有效,但有警告消息显示“警告:内联替换引用起始字符串没有结束字符串。”

\n\n

竖线被解释为替换参考的一部分。警告会随着一些转义而消失:

\n\n
.. parsed-literal:: \n\n   \\|\xe2\x94\x80\xe2\x94\x80 :ref:`parent`\n   |   \\|\xe2\x94\x80\xe2\x94\x80 :ref:`child`\n   |       \\|\xe2\x94\x80\xe2\x94\x80 :ref:`grandchild`\n
Run Code Online (Sandbox Code Playgroud)\n