2011-01-20 68 views
49

如何設置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>\ _

回答

51

此構造:

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

.. role:: red 

然後你使用這樣的:

+1

這真的很漂亮。我正在研究各種過度設計的解決方案,包括在我發現之前編寫自定義擴展。 – 2015-11-19 15:57:49

+37

**這不太美麗。**這太可怕了。所有理智的標記語言都支持內聯標記的無限嵌套,因爲這是2016年。自1959年以來,無上下文解析已經得到了平凡解決。(_Chomsky:[「關於語法的某些形式特性。」](http://www.sciencedirect。 com/science/article/pii/S0019995859903626#)_)reStructuredText解析器無法執行真正的上下文無關解析是一個粗糙的醜陋的瑕疵,否則就是純正的立面。定義良好且高度可擴展的reST語法應該更好。 (_Someone應該對此感覺不好。) – 2016-08-13 04:52:11

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和獅身人面像1.0.5。

+1

啊,好吧,我不知道intersphinx。謝謝,很高興知道。 「optparse」的鏈接實際上只是一個例子。我關心格式化文本到任何URI的鏈接,真的。 – gotgenes 2011-01-20 18:53:20

0

如果你想基本上是做得到的HTML/CSS相當於

<span class="red">This is red text</span> 

使用Sphinx的reStructuredText的,你可以通過創建一個角色這樣做:

:red:`This is red text` 

應該在李的結束只是一個刻度`以上。 你,當然,得有

.red { color: red } 
在你的CSS文件

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來完成複雜的事情。