2012-06-03 4 views
91

Я знаю ReStructuredText имеет эту директиву:Инлайн подсветку кода в ReStructuredText

.. code:: bash 

    gedit pohl.m 

, которая делает кодовый блок. Есть ли какой-нибудь способ, чтобы получить подсветку синтаксиса для встроенных фрагментов, как это:

Do edit the file, type ``gedit pohl.m`` into a terminal. 

кавычки пометить его как код, но я хотел бы, чтобы выделить его с pygments как блок. Это возможно?

+7

Обратные метки отмечают эту часть текста как [встроенный литерал] (http://docutils.sourceforge.net/docs/user/rst/quickref.html#inline-markup), а не как кодовый блок. Обычно это будет опубликовано в моноширинном шрифте. Я не уверен, как получить встроенный синтаксис кода. – Chris

ответ

146

Изучив это, я наткнулся на документ reStructuredText Interpreted Text Roles. Из этого документа:

Интерпретированный текст использует обратные кавычки (`) вокруг текста. Явный маркер роли может необязательно отображаться до или после текста, ограниченного двоеточиями. Например:

This is `interpreted text` using the default role. 

This is :title:`interpreted text` using an explicit role. 

Кажется, что есть code role, так что вы можете просто ввести

:code:`a = b + c` 

, чтобы сделать блок встроенного кода. Чтобы получить подсветку синтаксиса, вы можете определить настраиваемую роль. Например

.. role:: bash(code) 
    :language: bash 

, которые вы можете использовать, как так:

Here is some awesome bash code :bash:`a = b + c`. 

Примечания, документ я ссылка не имеет никакого упоминания о версии Docutils, к которому он относится. Роль кода - , а не, доступный в docutils 0.8.1 (это единственная версия, которую я должен проверить).

Смежные вопросы