【问题标题】:Insert a link into bold text in reStructuredText在 reStructuredText 中将链接插入粗体文本
【发布时间】:2012-03-27 13:39:05
【问题描述】:

我尝试在 reStructuredText 的粗体文本中插入一个链接,但失败了。

这是我的第一个来源:

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

但我得到了:

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

我想得到这个:

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

【问题讨论】:

标签: restructuredtext docutils


【解决方案1】:

目前看来这是不可能的:请参阅 Docutils 常见问题解答,特别是问题 "Is nested inline markup possible"。答案基本上表明嵌套内联标记在待办事项列表中,因此最终可以执行您在问题中提出的要求,并提供了一些解决方法(他们表示不推荐)。

由于暂时不建议使用解决方法,因此您可以执行以下操作:

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

当然你的链接不会是粗体的,但至少它是一个有效的链接。

【讨论】:

    【解决方案2】:

    如果适用,另一种解决方法是将整个段落标记为粗体。

    .. 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.
    
    【解决方案3】:

    不完全是您要求的 HTML,但它会在完全粗体文本内创建一个链接:

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

    将产生:

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

    【讨论】:

    • 哇,谢谢!就我而言,这漂亮地
    【解决方案4】:

    我做了一个 Shpinx 扩展 xxlink.py 其中注册了 Docutils 角色 :stlink::emlink:

    恢复

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

    生成的 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>
    

    结果

    exampleexampleexample

    现在我不必为每个 em/strong 链接定义 2 个额外的文本替换。

    欢迎提出建议。

    【讨论】:

      猜你喜欢
      • 2011-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-28
      • 2011-06-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多