Как добавить теги стиля блога в reStructuredText с Sphinx

Для проекта документации по языку программирования, написанного в reStructuredText и отображаемого в HTML с помощью Sphinx, я хочу сгруппировать свои функции в логические группы, такие как: String (все строковые функции), Web (все связанные с веб-функциями функции), List (что-нибудь со списком обработка) и т. д. Теперь, поскольку функции могут быть членами нескольких групп, я хочу каким-то образом добавить теги, как и в сообщениях в блоге.

Было бы очень аккуратно, если бы существовало расширение Sphinx (или, например, способ использования доменов), чтобы добавить теги, а затем сгенерировать страницу для каждого тега, ссылающуюся на все эти функции, обзор всех тегов и перекрестную ссылку в нижней части каждая функция страница. Возможно ли это, и если да, то как?

Пример:

--------- substring --------- **substring (**\ *<string,number>* **text,** *number* **start,** *number* **end*)** Description ----------- Returns the substring of string ``text`` between integer positions ``start`` and position ``end``. The first character in the string is numbered 0. The last character returned by ``substring`` is the character before position ``end``. Optionally ``end`` can be left out, which means the returned string will end at the last position of ``text``. Example ------- - Executing the following code: :: log(substring("Welcome to our site!", 0, 7)); log(substring("Welcome to our site!", 0)); will print: :: Welcome Welcome to our site! Tags ---- String 

2 Solutions collect form web for “Как добавить теги стиля блога в reStructuredText с Sphinx”

Я решил это с помощью некоторой пользовательской предварительной обработки и настраиваемой директивы. Мой личный сайт сделан с Sphinx, как и мой блог. И веблог – это теги.

Сначала пользовательский указатель Sphinx «теги», который я использую следующим образом:

 My blog entry header ==================== .. tags:: python, django Bla bla bla bla 

Сама директива переводится в кучу относительных связей формы ../../tags/python.html , которая работает, потому что записи в блоге всегда находятся в yyyy/mm/dd/ directories.

Во-вторых, небольшой скрипт предварительной обработки, который я вызываю из make-файла Sphinx. Этот скрипт просто генерирует файл tags/TAGNAME.txt . Sphinx обрабатывает его как обычный файл Sphinx, поэтому вам нужно только создать какой-то действительный реструктурированный текст. Например:

 python ###### .. toctree:: :maxdepth: 1 2013-08-23 Praise for github pull requests <../2013/08/23/praise-for-pull-requests.txt> 2013-08-21 How to say ``[:]`` programmatically in Python <../2013/08/21/programmatical-all-range.txt> 2013-08-15 Handy tracebacks instead of uninformative segfaults <../2013/08/15/handy-tracebacks-with-faulthandler.txt> 

Таким образом, основная идея заключается в создании файлов тегов и повторном использовании как можно более регулярного поведения Sphinx. (Я использую тот же подход для index.txt , yyyy/index.txt , yyyy/mm/index.txt и т. Д.).

Если вам нужен пример кода: https://github.com/reinout/reinout.vanrees.org/blob/master/rvo/weblog.py

Вы можете использовать функцию индексирования сфинкса.

Отдых:

 .. index:: BNF, grammar, syntax, notation Some rest goes here. 

conf.py:

 html_use_index = True 
  • сетка изображений REST с надписями?
  • Sphinx apidoc - не печатать полный путь к пакетам и модулям
  • Расширение документации документации Sphinx работает по-разному для вывода HTML и LaTeX?
  • можете ли вы переименовать «оглавление» в боковую панель sphinx?
  • Названия разделов Sphinx apidoc для имен модулей / пакетов Python
  • Sphinx - объединение автомодуля и автокласса
  • Добавление пользовательского тега в Sphinx
  • Есть ли способ использовать doctest и sphinx для тестирования и документирования приложений командной строки?
  • Python - лучший язык программирования в мире.