Могу ли я сохранить все мои внешние ссылки в отдельном файле с помощью Sphinx? - PullRequest
3 голосов
/ 09 мая 2020

У меня есть проект Sphinx с коллекцией файлов, которые содержат внешние ссылки в качестве ссылок внизу каждого файла, например:

Some text with `my link`_, more text
100 lines of text ...

.. _my link: http://example.com

Я бы хотел реорганизовать свои файлы, разделив их, объединив их и повторное использование внешних ссылок. Чтобы упростить эту задачу, я хотел бы сохранить свои ссылки в отдельном файле, каждая из которых имеет уникальный идентификатор, на который я могу ссылаться в тексте. Есть ли способ сделать это? Визуализированный вывод должен по-прежнему создавать внешнюю ссылку, а не сноску, как это было предложено в Как мне собрать все внешние ссылки в Sphinx?

1 Ответ

3 голосов
/ 09 мая 2020

Это можно решить с помощью правильных настроек в conf.py:

# Exclude link file
exclude_patterns = ['_build', 'links.rst']

# make rst_epilog a variable, so you can add other epilog parts to it
rst_epilog =""
# Read link all targets from file
with open('links.rst') as f:
     rst_epilog += f.read()

links.rst выглядит так:

.. _my link: http://example.com
.. _my other link: http://example2.com

С этой настройкой я могу гибко используйте либо уникальный идентификатор в качестве метки ссылки, либо укажите настраиваемую метку ссылки:

Some text with `my link`_ and a `custom label<my other link>`_
...