По итогам YAPC::Russia

По итогам выступления на YAPC::Russia отметил следующие моменты:

Возможна ли фильтрация блоков документации ?

В спецификации есть момент, описывающий способ решения подобной задачи. Для этого используется код форматирования Z<> (inline comment). Содержимое этого блока является комментарием и удаляется трансляторами при обработке. Однако, содержимое может служить признаком, конфиденциальности, если в нем содержится например слово "КОНФИДИЦИАЛЬНО". Таким образом, при обработке блоки, удовлетворяющие условию /КОНФИДИЦИАЛЬНО/, могут быть пропущены.

class Widget is Bauble
    {
        has $.things; #= a collection of other stuff
        #={ 
            This variable needs to be replaced for political reasons
        }
    }

Для подобных целей я использую свойства у блоков. Есть некоторое количество зарезервированных свойств, но их количесво мало. В использовании произвольных свойств спецификация не ограничивает:

Данный параграф недоступен для публикации

Фильтрация блоков происходит при обработке пользовательской директивы =Include. Реализация этого блока находится в библиотеке Perl6::Pod::Lib. Синтаксис параметров фильтрации следующий:

Данный блок вставит в указанное место только блоки para с свойством public из файла api.pod.

Использование Pod в Perl 5

Модуль Perl6::Pod представляет собой SourceFilter и позволяет использовать блоки Pod в тексте программ Perl 5. Конечно же парсер не позволяет использовать блоки-деклараторы и подобные фитчи Pod, привязанные к грамматике Perl 6.

Чтобы писать документацию в формате Pod достаточно указать в начале программы:

use Perl6::Pod;

Единственный недостаток использования этого модуля: он недостаточно хорошо протестирован.

Создание презентаций в Perl 6 Pod

Библиотека Perl6-Pod-Slide позволяет создавать презентации, используя Perl 6 Pod. Принцип ее работы прост: текст Pod транслируется в Tex, а затем "родными" средствами Tex преобразуется в Pdf. Делается это в два шага:

pod6slide < tech_docs.pod > tech_docs.tex
 pdflatex tech_docs.tex

Также хотелось бы отметить качественный уровень конференции этого года. Были приглашены активные разрабочики Perl 6: Джонатан Вортингтон (Jonathan Worthington) и Карл Мэсак (Carl Masak).

Благодаря яндексовцам открыл для себя psgi.streaming. С учетом этой возможности PSGI стал применим для моих практических задач.

All Articles