¿Cómo tener el mismo texto en dos enlaces con texto reestructurado?

81

Esto es lo que me gustaría hacer:

1. `link <http://www.google.com>`__
2. `link <http://www.yahoo.com>`__

Para obtener:

<ol>
<li><a href="http://www.google.com">link</a></li>
<li><a href="http://www.yahoo.com">link</a></li>
</ol>

El contexto es una lista de publicaciones, donde quiero que todas tengan un enlace marcado "DOI" al final.

Sin embargo, esto parece fallar con:

<string>:3: (WARNING/2) Duplicate explicit target name: "doi".

El error exacto parece depender de la versión de docutils que uso, pero todos fallaron.

¿Existe alguna forma de generar varios enlaces con el mismo texto en texto reestructurado?

luispedro
fuente

Respuestas:

137

La advertencia

(ADVERTENCIA / 2) Nombre de destino explícito duplicado: foo

ocurre cuando utiliza el mismo texto para dos enlaces diferentes en "Referencias de hipervínculo con nombre":

`Foo <http://example.org>`_
`Foo <http://example.com>`_

Para evitarlo, utilice referencias de hipervínculos anónimas con guiones bajos dobles:

`Foo <http://example.org>`__
`Foo <http://example.com>`__

Esto funciona sin una advertencia en docutils 0.8.1.

cweiske
fuente
Creo que esto es cierto solo en versiones más recientes. Puedo confirmar que ahora obtuve este resultado (que es, posiblemente, el mejor resultado). Acepto esta nueva respuesta.
luispedro
16

Creo que querrás usar hipervínculos anónimos:

1. `link`__
2. `link`__

__ http://www.google.com
__ http://www.yahoo.com

Tenga en cuenta que el orden al que se hace referencia en el documento es importante. Puede encontrar más información aquí .

Jesse
fuente
4

Parece que necesita una nueva línea y dos guiones bajos.

Esto es lo que hago:

What is that Process object good for? `(html)
<process.html>`__
`(html) 
<other.process.rst>`__

para obtener:

What is that Process object good for? 
<a class="reference external" href="process.html">(html)</a>
<a class="reference external" href="process.rst">(html)</a>
Usuario
fuente