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

got*_*nes 68 restructuredtext python-sphinx

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

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

<a href="http://docs.python.org/library/optparse.html"><tt>optparse.OptionParser</tt> documentation documentation</a>
Run Code Online (Sandbox Code Playgroud)

结果应如下所示:

optparse.OptionParser 文件

其中"optparse.OptionParser"部分是固定宽度字体.

我试过了

```optparse.OptionParser`` <http://docs.python.org/library/optparse.html>`_
Run Code Online (Sandbox Code Playgroud)

然而,这给了

<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;`_
Run Code Online (Sandbox Code Playgroud)

看起来像这样

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

mzj*_*zjn 77

这个结构:

Here you have |optparse.OptionParser|_.

.. |optparse.OptionParser| replace:: ``optparse.OptionParser`` documentation
.. _optparse.OptionParser: http://docs.python.org/library/optparse.html
Run Code Online (Sandbox Code Playgroud)

生成此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>
Run Code Online (Sandbox Code Playgroud)

我知道这是不是正是你问什么,但也许这是足够接近.另见http://docutils.sourceforge.net/FAQ.html#is-nested-inline-markup-possible.

  • **这真的很美.**这太可怕了.所有理智的标记语言都支持内联标记的无限嵌套,因为这是2016年.自1959年以来,无法进行无上下文解析.(_Chomsky:["在语法的某些形式属性上."](http://www.sciencedirect. com/science/article/pii/S0019995859903626#)_)reStructuredText解析器无法执行真正的无上下文解析,这对于其他英镑外观来说是一种粗鲁,丑陋的瑕疵.reST的定义明确且高度可扩展的语法值得更好.(_有人应该为此感到难过._) (76认同)
  • 这真的很漂亮。在我发现这个之前,我正在研究各种过度设计的解决方案,包括编写自定义扩展。 (3认同)
  • 该常见问题解答条目中的[“详细信息此处”链接](http://docutils.sourceforge.net/docs/dev/rst/alternatives.html#nested-inline-markup)很有趣......尤其是“其他形式的内联标记可能如果明确的话可以嵌套”;我想知道发生这种情况的唯一方法是否是有人尝试制作一个补丁集来处理明确的情况,然后这种[“稍微不符合规范”的 RST 风格变得司空见惯](https:// www.gwern.net/Bitcoin-is-Worse-is-Better)足以让一切从那里滚雪球(或者如果不是至少我们立即得到对明确案例的良好支持) (2认同)
  • 请注意,这仅适用于超链接,不适用于文档内链接(如“:ref:”) (2认同)

mzj*_*zjn 6

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

:py:class:`optparse.OptionParser`
Run Code Online (Sandbox Code Playgroud)

产生这个 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>
Run Code Online (Sandbox Code Playgroud)

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


asm*_*rer 5

取自 mzjn 引用的同一常见问题解答页面:

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>
Run Code Online (Sandbox Code Playgroud)

理论上应该可以用 RST 来做一些复杂的事情。