2017-01-30 10 views
0

Я пишу документацию в формате RST и генерирую HTML с помощью Sphinx.Повторное использование текста в RST для документации Sphinx

Я хочу, чтобы иметь возможность написать абзац в RST-файле и повторно использовать тот же абзац в другом RST-файле в той же папке. Я хочу, чтобы повторное использование таким образом, что если я вношу изменения в исходный абзац, он должен автоматически изменяться во всех других файлах, на которые он ссылался, когда я генерирую HTML с помощью Sphinx.

Есть ли какой-либо синтаксис RST, чтобы это произошло? Любая помощь приветствуется.

ответ

3

Вы можете использовать include directive.

Для основной включают ссылки на пункт, который вы хотите повторно использовать следующим образом:

Some text 

.. include:: /path/to/file_to_include.rst 

More text 

В нашем примере, содержание file_to_include.rst является Included text. Sphinx сгенерирует:

Some text 

Included text 

More text 

Как вы можете увидеть в документации Docutils (связанный выше), вы можете дополнительно указать набор опций, например, чтобы ограничить входящий в текст в диапазоне строк.

+0

Спасибо! Я могу добавить полный текст, а также добавить либо в начало, либо в конец строки. Но когда я добавляю в качестве начальных и конечных строк параметры для отображения диапазона, он не отображается. Вот синтаксис, который я использую: .. include :: includedtext.rst : start-line: 11 \t \t: end-line: 14 – Ashwin

+0

Это отлично работает для меня. Можете ли вы ссылаться на примерный проект, с помощью которого я могу воспроизвести проблему и предоставить версию Sphinx/Docutils? Вы точно задаете номера строк правильно? Счетчик строк начинается с 0. Конечная строка не включается. –

+0

он работает спасибо! – Ashwin