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

时间:2017-06-13 16:54:56

标签: python-sphinx restructuredtext

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

  |── parent
  |   |── child
  |       |── grandchild

它在代码块中,以便Sphinx保留空白。

我希望读者能够点击每个节点,跟随internal hyperlink到描述该节点的文档部分。但是,在代码块中添加:ref:并不起作用(见下文)。有谁知道如何实现这个目标?

这不起作用:

.. _parent:

Parent
------
Blah blah

.. _child:

Child
-----
Blah blah

.. _grandchild:

Grandchild
----------
Blah blah

则...

|── :ref:`parent`
|   |── :ref:`child`
|       |── :ref:`grandchild`

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:2)

您可以使用parsed-literal指令:

.. parsed-literal:: 

   |── :ref:`parent`
   |   |── :ref:`child`
   |       |── :ref:`grandchild`

这样可行,但是有警告消息说"警告:内联substitution_reference start-string没有结束字符串。"

垂直条被解释为substitution references的一部分。警告随着一些逃脱而消失:

.. parsed-literal:: 

   \|── :ref:`parent`
   |   \|── :ref:`child`
   |       \|── :ref:`grandchild`

答案 1 :(得分:0)

.. code-block::用于文字代码,除语法高亮外,不会被解析。

相反,您可以使用CSS类my-special-class将样式应用于树,并编写类似于HTML <pre><code>的CSS样式。您还需要将|转义为\|,因为reST会尝试将|解析为替换。

休息:

.. rst-class:: my-special-class

\|── :ref:`parent`
\|   \|── :ref:`child`
\|       \|── :ref:`grandchild`

CSS:

.my-special-class {
    font-family: monospace;
    white-space: pre;
}