2011-01-20 17 views
49

¿Cómo formatear texto dentro de un enlace denotado en reStructuredText?Dar formato al texto en un enlace en reStructuredText

Específicamente, deseo para generar el código HTML siguiente de mi primera:

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

El resultado debe ser similar a esto:

optparse.OptionParser documentation

donde el "optparse.OptionParser "porción está en fuente de ancho fijo.

me trataron

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

sin embargo, esto dio

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

que se parece a este

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

Respuesta

51

Esta construcción:

Here you have |optparse.OptionParser|_. 

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

produce este código HTML (algunos saltos de línea en el original):

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

Soy consciente de que esto no exactamente lo que solicitó es, pero tal vez es lo suficientemente cerca. Vea también http://docutils.sourceforge.net/FAQ.html#is-nested-inline-markup-possible.

+1

Esto es realmente hermoso. Estaba buscando todo tipo de soluciones sobre ingeniería, incluida la escritura de extensiones personalizadas antes de encontrar esto. –

+37

** Esto no es realmente hermoso. ** Esto es horrible. Todos los lenguajes de marcado sanos admiten el anidamiento indefinido del marcado en línea, porque es 2016. El análisis sin contexto se ha resuelto trivialmente desde 1959. (_Chomsky: ["Sobre ciertas propiedades formales de las gramáticas."] (Http: //www.sciencedirect. com/science/article/pii/S0019995859903626 #) _) La incapacidad del analizador reStructuredText para realizar un análisis sintáctico genuino sin contexto es una imperfección fea y cruda en una fachada que de otro modo sería esterlina. La sintaxis bien definida y altamente extensible de reST se merece algo mejor. (_Alguien debería sentirse mal por esto.) –

4

¿Has probado intersphinx? Usando esa extensión, el siguiente marcado:

:py:class:`optparse.OptionParser` 

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

probado con Python 2.6 y Sphinx 1.0.5.

+1

Ah, bueno, no sabía sobre intersphinx. Gracias, es bueno saberlo. El enlace a 'optparse' es en realidad solo un ejemplo. Me preocupa el formato de texto en un enlace a cualquier URI, realmente. – gotgenes

0

Si desea esencialmente no conseguir HTML/CSS equivalente de

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

en reStructuredText usando Sphinx, usted puede hacer esto mediante la creación de un papel:

.. role:: red 

A continuación, utilizar de esta manera :

:red:`This is red text` 

No debería haber una sola marca de la señal ` al final de la li ne arriba. Usted, por supuesto, tiene que tener

.red { color: red } 

en su archivo CSS.

3

Tomando de la misma página de preguntas frecuentes referenciado por 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> 

Debe ser, en teoría posible hacer las cosas complicadas con que eso no se puede hacer con RST.

+0

esto funciona, pero también rompe otros escritores (LaTeX, PDF, etc.) –

Cuestiones relacionadas