15 April 2010 08:47
Perl6 Pod: Встроенные конфигурационные параметры
В двух типах блоках документации Pod используются конфигурационные параметры. Это - разграниченные блоки( Delimited blocks ) и блоки-параграфы ( Paragraph blocks ).
Спецификация диалекта Pod выделяет несколько стандартных конфигурационных параметров и описывает их значение. В результате моей переписки с автором спецификации, Домианом Конвей (Damian Conway), возник повод для пересмотра некоторых из них ( :nested, :allow). Приведенные ниже (и далее) материалы описывают реализацию одобренных предложений.
Стандартные конфигурационные параметры
Pod резервирует несколько стандартных параметров для использования во встроенных типах блоков. Список этих параметров следующий:
- :numbered
- Данный параметр указывает, что блок является нумерованным. Это свойство используется в заголовках (=head1, =head2) и списках (=item), но может быть указано для любого блока.
В случае произвольных блоков, стандарт передает интерпретацию данного свойства на усмотрение программе обрабатывающей этот блок.
Например:
Ягоды: =for item :numbered Клубника =for item :numbered Земляника =for item :numbered Черника
Будет выглядеть как :
Ягоды:
- Клубника
- Земляника
- Черника
Примененное к заголовкам это свойство добавляет номер уровня.
- :term
- Это свойство указывает на то , что данный список - список определений. Поэтому это свойство устонавливается для блоков =item.
- :formatted
- Данный параметр дает указание интерпретировать содержимое блока, так словно оно обрамлено кодами форматирования.
Например вместо:
=begin para B<I< Warning: Do not immerse in water. Do not expose to bright light. Do not feed after midnight. >> =end para
можно использовать:
=begin para :formatted<B I> Warning: Do not immerse in water. Do not expose to bright light. Do not feed after midnight. =end para
Данные формы во внутреннем представлении почти эквивалентны. Единственное различие: во втором случае свойство :formatted остается в атрибутах объекта блока.
Коды форматирования, указанные в свойстве :formatted, дополняют уже примененные к блоку.
- :like
- Замечательное свойство :like помогает навести порядок в параметрах блоков. Она указывает имена блоков, чьи свойства применить к текущему, тем самым снижая дублирование. Вполне подобное поведение можно назвать наследованием.
Параметр :like может быть применен к любому блоку, а также к директиве =config.
Пример:
=config head1 :numbered =config head2 :like<head1> :formatted<I>
В этом примере, благодаря :like, блоки заголовков второго уровня =head2 становятся нумерованными.
- :allow
- Данное свойство разрешает использование внутри блока только указанные коды форматирования (оригинальная спецификация ограничивала применение этого кода блоками =code ).
