1

У меня есть проект документации, сделанный с Sphinx. Я использую глобальные переменные с помощью ключа конфигурации rst_epilog. Мой conf.py файл содержит следующее:Переменная замена не работает должным образом в Sphinx

rst_epilog = """ 
.. |MY_VERSION| replace:: 2.1.0 
""" 

Затем на странице первой, я использую ранее определенную переменную (VERSION) следующим образом:

The version of my repo is: |MY_VERSION| 

.. sourcecode:: bash 

    git clone https://github.com/my-organization/my-repo.git 
    cd my-repo 
    git checkout |MY_VERSION| 

После создания документации, в результате чего HTML, первая переменная правильно заменена, но не вторая: enter image description here

Очевидно, что замена не работает внутри отформатированных блоков исходного кода, что очень важно удобный.

Возможно ли преодолеть эту проблему?

PS: Я также пробовал с rst_prolog с тем же результатом.

+1

Попробуйте 'parsed-literal'. См. Http://docutils.sourceforge.net/docs/ref/rst/directives.html#parsed-literal-block – mzjn

+0

Да, большое спасибо, это сработало! Вы знаете, можно ли комбинировать 'parsed-literal' с' sourcecode'? –

+0

Нет, вы не можете их комбинировать. – mzjn

ответ

2

Это сделает замену работы:

.. parsed-literal:: 

    git clone https://github.com/my-organization/my-repo.git 
    cd my-repo 
    git checkout |MY_VERSION| 

С parsed-literal директивы, вы можете иметь замены (и другие инлайн разметки), но нет подсветки синтаксиса.

С code-block (или sourcecode, или highlight), вы можете иметь подсветку синтаксиса, но встроенная разметка не обрабатывается.