Zeyi Fan
Zeyi Fan

Reputation: 2373

Insert a link into bold text in reStructuredText

I try to insert a link into bold text in reStructuredText but failed.

This is my rst source:

**Lorem ipsum dolor sit amet, `consectetur <http://www.example.com>`_ 
adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore 
magna aliqua.**

but I got:

<strong>Lorem ipsum dolor sit amet, `consectetur <http://www.example.com>`_ 
adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore
magna aliqua.</strong>

I want to get this:

<strong>Lorem ipsum dolor sit amet, <a href="http://www.example.com">consectetur</a> 
adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore
magna aliqua.</strong>

Upvotes: 24

Views: 6005

Answers (4)

Voy
Voy

Reputation: 6284

Not exactly the HTML you ask for, but it creates a link inside of a fully bold text:

.. _consectetur: http://www.example.com
.. |consectetur| replace:: **consectetur** 

**Lorem ipsum dolor sit amet,** |consectetur|_
**dolor elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.**

will produce:

<strong>Lorem ipsum dolor sit amet,</strong>
<a href="http://www.example.com"><strong>consectetur</strong></a>
<strong>dolor elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</strong>

Upvotes: 5

user8243991
user8243991

Reputation:

I've made a Shpinx extension xxlink.py which registers Docutils roles :stlink: and :emlink:.

reST

`example <https://example.org>`__
:stlink:`example <https://example.org>`
:emlink:`example <https://example.org>`

emited HTML

<p><a class="reference external" href="https://example.org">example</a>
<strong><a class="reference external" href="https://example.org">example</a></strong>
<em><a class="reference external" href="https://example.org">example</a></em></p>

result

example example example

Now I don't have to define 2 extra text substitutions for every single em/strong link.

Suggestions are welcome.

Upvotes: 0

Enrico Segre
Enrico Segre

Reputation: 47

One further workaround would be to mark the whole paragraph as bold, if applicable.

.. class:: bold

Lorem ipsum dolor sit amet, `consectetur <http://www.example.com>`_ 
adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore 
magna aliqua.

Upvotes: 3

Chris
Chris

Reputation: 46326

At the moment it seems that this is not possible: see the Docutils FAQ, specifically the question "Is nested inline markup possible". The answer basically states that nested inline markup is on the to do list, so it will eventually be possible to do what you ask in the question, and provides a couple of work arounds (which they state are not recommended).

Since the workarounds are not recommended perhaps for the time being you could just do something like:

**Lorem ipsum dolor sit amet,** `consectetur <http://www.example.com>`_ 
**adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore 
magna aliqua.**

Of course your link would not be bold, but at least it will be a valid link.

Upvotes: 22

Related Questions