2011-01-20 17 views
49

Come si formatta il testo in un collegamento denotato in reStructuredText?Formato del testo in un collegamento in reStructuredText

In particolare, desidero generare il seguente codice HTML dal mio primo:

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

Il risultato dovrebbe essere simile a questo:

optparse.OptionParser documentation

dove il "optparse.OptionParser "porzione è in carattere a larghezza fissa.

ho cercato

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

tuttavia, questo ha dato

<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;`_ 

che assomiglia a questo

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

risposta

51

Questo costrutto:

Here you have |optparse.OptionParser|_. 

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

produce questo HTML (qualche interruzione di linea aggiunto):

<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> 

mi rendo conto che questo non esattamente quello che hai chiesto è, ma forse è abbastanza vicino. Vedi anche http://docutils.sourceforge.net/FAQ.html#is-nested-inline-markup-possible.

+1

Questo è veramente bello. Stavo osservando tutti i tipi di soluzioni troppo ingegneristiche, inclusa la scrittura di estensioni personalizzate prima di averlo trovato. –

+37

** Questo non è veramente bello. ** Questo è orribile. Tutti i linguaggi di markup sane supportano l'annidamento indefinito del markup in linea, perché questo è il 2016. L'analisi senza contesto è stata banalmente risolta dal 1959. (_Chomsky: ["Su certe proprietà formali delle grammatiche."] (Http: //www.sciencedirect. it/science/article/pii/S0019995859903626 #) _) L'incapacità del parser di reStructuredText di eseguire un parsing genuino e privo di contesto è una brutta, brutta macchia su una facciata altrimenti sterlina. La sintassi ben definita ed altamente estensibile di reST merita di meglio. (Qualcuno dovrebbe sentirsi in colpa per questo._) –

4

Hai provato intersphinx? Utilizzando tale estensione, il codice seguente:

:py:class:`optparse.OptionParser` 

produce questo 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> 

testato con Python 2.6 e 1.0.5 Sfinge.

+1

Ah, beh, non sapevo di intersphinx. Grazie, è bello saperlo. Il link a optparse è in realtà solo un esempio. Mi interessa la formattazione del testo in un link a qualsiasi URI, davvero. – gotgenes

0

Se si vuole fare in sostanza ottenere HTML/CSS equivalente di

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

in reStructuredText utilizzando Sfinge, si può fare questo con la creazione di un ruolo:

.. role:: red 

quindi si utilizza in questo modo :

:red:`This is red text` 

ci dovrebbe essere solo un segno di spunta ` alla fine della Li ne sopra. Voi, naturalmente, avere

.red { color: red } 

nel file CSS.

3

Prendendo dalla stessa pagina FAQ a cui fa riferimento 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> 

Dovrebbe, in teoria, essere possibile fare cose complicate con quella che non può essere fatto con RST.

+0

funziona, ma danneggia anche altri autori (LaTeX, PDF, ecc.) –

Problemi correlati