Sphinx / reST: несколько анонимных явных внешних ссылок в одном абзаце - PullRequest
0 голосов
/ 22 марта 2020

Как я могу создать две отдельные внешние ссылки в одном и том же абзаце, например, что-то вроде:

for pytorch click `here <http://www.pytorch.org>`_ and for tensorflow click
`here <http://www.tensorflow.org>`_

, которые отображаются следующим образом

<p>for pytorch click <a href="http://www.pytorch.org" rel="nofollow noreferrer">here</a> and for tensorflow click <a href="http://www.tensorflow.org" rel="nofollow noreferrer">here</a></p>

НО с разделенными или не встроенными ссылками! Это позволило бы мне собрать все внешние ссылки в одном месте и вызывать их, используя любую подпись, которая мне нравится.

Теперь, если я использую анонимные ссылки, как в следующем коде:

.. __: pytorch_
for example.com click here__

.. __: tensorflow_
and for tensorflow.com click here__

.. _pytorch: http://www.pytorch.org
.. _tensorflow: http://www.tensorflow.org

Это то, что я получаю (обратите внимание на отдельные параграфы)

<p>for pytorch click <a href="http://www.pytorch.org" rel="nofollow noreferrer">here</a></p><p>and for tensorflow click <a href="http://www.tensorflow.org" rel="nofollow noreferrer">here</a></p>

Другими словами, если мы возьмем этот пример ... могу ли я использовать ту же самую надпись (например, here) для ссылка на две разные явные и не встроенные внешние ссылки в одном и том же абзаце?

Ответы [ 2 ]

2 голосов
/ 23 марта 2020

Используйте подстановку с необработанной html ролью, следуя этому ответу .

Добавьте к conf.py:

rst_epilog = """
.. role:: raw-html(raw)
   :format: html

.. |pytorch| replace:: :raw-html:`<a href="https://www.pytorch.org">here</a>`

.. |tensorflow| replace:: :raw-html:`<a href="https://www.tensorflow.org">here</a>`
"""

В вашем .rst :

|pytorch| and |tensorflow|
1 голос
/ 23 марта 2020

Расширение extlinks предназначено для сокращения внешних ссылок, но также позволяет указать текст описания ссылки

Чтобы использовать его, выполните следующие действия в conf.py

# enable `extlinks` extension
extensions = [
        'sphinx.ext.extlinks',
]

# add external URLs
extlinks = {
        'pytorch': ('https://www.pytorch.org/%s', 'pytorch'),
        'tensorflow': ('https://www.tensorflow.org/%s', 'tensorflow')
        }

Теперь внутри документа сделайте следующее:

Incidentally :tensorflow:`some <>` libraries turn out to be more popular than
:pytorch:`some <>`

Вывод должен выглядеть следующим образом

<p>Incidentally <a href="https://www.tensorflow.org/" rel="nofollow noreferrer">some</a> libraries turn out to be more popular than <a href="https://www.pytorch.org/" rel="nofollow noreferrer">some</a></p>
...