Статус формата Perl 6 Pod ( Synopsis 26 )

Спецификация "Synopsis 26" на данный формат перестала быть черновиком. Данный статус зафиксирован 31 июля [1], вскоре после выхода Rakudo-Star. Сам документ "Synopsis 26" [2] написан в формате Perl 6 Pod и поэтому является своего рода тестом для проверки реализаций этого формата :-).

По сравнению со прежней, черновой спецификацией (от 2007-2009 года), произошли изменения:

  • Pod перестал быть диалектом более общего формата разметки Perldoc. Теперь Pod - просто эволюция формата Perl 5 POD (Plain Old Documentation).

  • Помимо существовавших ранее трех блоков документации, добавился еще один - декларативный блок (Declarator block). Он облегчает документирование Perl 6 кода, привязывая блоки документации к структурам языка.

  • Изменился формат представления списков определений (Definition lists). Теперь вместо свойства :term, для данного типа списков используется блок =defn.

  • Добавились синонимы (aliases). Для их определения используется блок =aliases, а применяются они в коде форматирования A<>.

  • Изменения коснулись директивы =use.

На смену директиве =use (подключение внешних библиотек) пришла следующая конструкция:

DOC use Pod6::TT;

Прежняя форма

    =use Perldoc::Plugin::Image  :Jpeg  :prefix('http://dev.perl.org') 

на мой взгляд, была синтаксически лучше (по крайней мере для применений Pod кроме документирования Perl 6 кода).

В реализации этого формата, над которой работаю [3], еще предстоит учесть последние изменения. Однако, тот факт что сама спецификация зафиксирована - хороший повод двигаться в ее реализации дальше, а так же шире использовать этот формат.

На сегодня Perl 6 Pod используется мной в следующих случаях:

  • Как основной формат создания статей в этом блоге. Например, эту статью можно увидеть в оригинальном виде: в формате Perl 6 Pod.

  • В этом формате создается книга "Все о Perl 6".

  • Готовлю презентации в Perl 6 Pod [4].

  • Пишу рабочую документацию по разрабатываемым проектам.

На данный момент Pod можно конвертировать в docbook, xml, xhtml. Следующие форматы, которые планирую реализовать - man и LaTeX. Формат man особенно ожидаем конкретным человеком.

[1] Спецификации Perl 6 : Perl 6 specification documents

[2]Спецификация формата Perl 6 Pod. Synopsis 26

[3]Реализация Pod на Perl 5. Perl6::Pod

[4]Создание презентаций в формате Perl6 Pod: библиотека Perl6-Pod-Slide