2016-01-07 4 views
3

Как сгенерировать элемент аббревиатуры <abbr> в ReST?Элемент аббревиатуры (abbr) в reStructuredText

<abbr title="Hypertext Markup Language">HTML</abbr>

documentation указывает, что «Элемент аббревиатуры не подвергается по умолчанию в текст с измененной структурой. Она может быть доступна только через пользовательские роли.» Я не уверен, как создать такую ​​настраиваемую роль, а therestofthe документация для меня такова.

+0

Роль «сокращение», которую вы упомянули, сработала для меня (как '\' HTML \ ': сокращение:'), хотя и через Sphinx, а не с vanilla Docutils. Однако, похоже, не существует способа добавить атрибут 'title'. –

ответ

2

я решил его сейчас, добавив это в нижней части документа:

.. |HTMLabbr| raw:: html 

    <abbr title="Hypertext Markup Language">HTML</abbr> 

Затем в документе, который я использовал этот «тег»/пользовательские роли, как это:

This document is written in |HTMLabbr| and renders nicely in a modern browser. 

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

+0

Да, такой тег может быть реализован с помощью пользовательской первой роли, чтобы можно было написать ': abbr: \' HTML \ '' или ': abbr: \' WHATEVER \ '' вместо этого. – marbu

0

Создание пользовательской docutils первой роли не является трудным (по сравнению с другими способами, как для расширения docutils). См. rst roles howto, который содержит все детали вместе с полной реализацией примера роли RFC. Я смог создать пользовательский bugzilla referencing role на основе этого документа.