在reStructuredText中的链接中设置文本格式

时间:2011-01-20 05:45:34

标签: python-sphinx restructuredtext

如何在reStructuredText中的表示链接中格式化文本?

具体来说,我希望从我的第一个生成以下HTML:

<a href="http://docs.python.org/library/optparse.html"><tt>optparse.OptionParser</tt> documentation documentation</a>

结果应如下所示:

  

optparse.OptionParser documentation

其中“optparse.OptionParser”部分采用固定宽度字体。

我试过

```optparse.OptionParser`` <http://docs.python.org/library/optparse.html>`_

然而,这给了

<tt class="docutils literal">`optparse.OptionParser</tt> documentation &lt;<a class="reference external" href="http://docs.python.org/library/optparse.html">http://docs.python.org/library/optparse.html</a>&gt;`_

看起来像这样

  

``optparse.OptionParser documentation <http://docs.python.org/library/optparse.html>\ _

4 个答案:

答案 0 :(得分:72)

这个结构:

Here you have |optparse.OptionParser|_.

.. |optparse.OptionParser| replace:: ``optparse.OptionParser`` documentation
.. _optparse.OptionParser: http://docs.python.org/library/optparse.html

生成此HTML(添加了一些换行符):

<p>Here you have 
  <a class="reference external" href="http://docs.python.org/library/optparse.html">
  <tt class="docutils literal"><span class="pre">optparse.OptionParser</span></tt> documentation</a>.
</p>

我意识到这不是完全你所要求的,但也许它足够接近。另请参阅http://docutils.sourceforge.net/FAQ.html#is-nested-inline-markup-possible

答案 1 :(得分:4)

你试过intersphinx吗?使用该扩展名,可以使用以下标记:

:py:class:`optparse.OptionParser`

生成此HTML:

<a class="reference external" href="http://docs.python.org/2.6/library/optparse.html#optparse.OptionParser" title="(in Python v2.6)"><tt class="xref py py-class docutils literal"><span class="pre">optparse.OptionParser</span></tt></a>

使用Python 2.6和Sphinx 1.0.5进行测试。

答案 2 :(得分:3)

从mzjn引用的相同FAQ页面中获取:

The "raw" directive can be used to insert raw HTML into HTML output:

Here is some |stuff|.

.. |stuff| raw:: html

   <em>emphasized text containing a
   <a href="http://example.org">hyperlink</a> and
   <tt>inline literals</tt></em>

理论上应该可以使用RST无法完成的复杂事情。

答案 3 :(得分:0)

如果你想基本上得到相当于

的HTML / CSS
<span class="red">This is red text</span>

在使用Sphinx的reStructuredText中,您可以通过创建角色来实现:

.. role:: red

然后你就这样使用它:

:red:`This is red text`

上面一行的末尾应该只有一个刻度线`。 当然,你必须拥有

.red { color: red }

在CSS文件中。