using perl6-pod
DESCRIPTION
Pod is an evolution of Perl 5's POD markup. Compared to POD, Perl 6's Pod is much moreuniform, somewhat more compact, and considerably more expressive.Established in 2005 specification has undergone several revisions and is currently stable.The specification is written in Perl 6 Pod and is a good means of testing implementations.There are several implementations in Perl 5 and Perl 6.I'll talk about the differences from Perl 5 POD, key features and how I use Perl 6 Pod.TRANSCRIPT
Использование Perl 6 Pod
Александр Загацкий
14 мая 2011
Кто я
http://search.cpan.org/∼zag/lang/rakudo ( FreeBSD )книга "Все о Perl 6"
Использование Perl 6 Pod Александр Загацкий
Содержание
Основные моменты:
Введение в PodСтруктура PodФитчи PodРеализацииПрименение Pod
Использование Perl 6 Pod Александр Загацкий
Synopsis 26
18 октября 1994 В списке анонса perl 5.000 присутвуетподдержка POD
9 апреля 2005 Synopsis 26.Автор - Damian Conway.25 апреля 2007 Вторая редакция16 августа 2009 S26 - The Next Generation31 июля 2010 Последняя редакция. :!DRAFT
Использование Perl 6 Pod Александр Загацкий
POD -> Pod
POD - Perl Old Documentation
Pod в S26:Pod - является эволюцией POD. В сравнении с POD, Perl6 Pod более однороден, компактен и выразительнее. Podтакже характеризуется описательной нотацией разметки,
вместо презентационной.
Таким образом Pod избавился от слова "старый".
Использование Perl 6 Pod Александр Загацкий
Отличия POD от Pod: Границы блоков документции.
POD� �1 =head12 ...34 =cut� �
PodРазграниченные блоки / Delimited blocksБлоки-параграфы / Paragraph blocksСокращенные блоки / Abbreviated blocksБлоки-деклараторы / Declarator blocks (*)
Использование Perl 6 Pod Александр Загацкий
Параметры блоков
Конфигурационные параметры представлены парной нотациейв стиле perl6 (S02)
=for Image :title(’3 стиля для =table’)= :align(’center’) :!bordersrc/3block_datapng.png
Использование Perl 6 Pod Александр Загацкий
Равнозначность стилевых блоков
Типы блоков одинаково представлены во внутренней структуредокумента.
=begin table :caption<Table of Contents>
Constants 1
Variables 10
Subroutines 33
Everything else 57
=end table
=for table :caption<Table of Contents>
Constants 1
Variables 10
Subroutines 33
Everything else 57
=table
Constants 1
Variables 10
Subroutines 33
Everything else 57
Использование Perl 6 Pod Александр Загацкий
Блоки-деклараторы / Declarator blocks
Блоки без имен.Ассоциируются с ближайшим декларатором.� �1 sub fu ( #= This text stored in &fu.WHY2 Any $bar, #= This text stored in $bar.WHY3 Mode :$baz #= This text stored in $baz.WHY4 ) { ... }56 #= This is a special chainsaw7 my SwissArmy $chainsaw #= (It has a rocket launcher)89 say $chainsaw.WHY; # prints: This is a special chainsaw
10 # (It has a rocket launcher)� �
Использование Perl 6 Pod Александр Загацкий
access to pod/doc text by code
Использование Perl 6 Pod Александр Загацкий
Особенности Pod
=item, =itemN - уровни в списках=table определение таблицконтекстуальные псевдонимы=SYNOPSIS, =NAME ... - семантические блоки=config, :like - предварительное конфигурирование ипараметр :likeDOC use - расширяемость
Использование Perl 6 Pod Александр Загацкий
Уровни в списках
� �1 =item1 Animal2 =item2 Vertebrate3 =item2 Invertebrate45 =item1 Phase6 =item2 Solid7 =item2 Chocolate� �
Результат
* Animal- Vertebrate- Invertebrate
* Phase- Solid- Chocolate
Использование Perl 6 Pod Александр Загацкий
Таблицы (=table)
Использование Perl 6 Pod Александр Загацкий
Таблицы (=table)
Использование Perl 6 Pod Александр Загацкий
Контекстуальные псевдонимы
Включение кода без копирования� �1 # This is actual code...2 sub hash_function ($key)3 =alias HASHCODE4 {5 my $hash = 0;6 for $key.split("") -> $char {7 $hash = $hash*33 + $char.ord;8 }9 return $hash;
10 }11 =begin pod12 An ancient (but fast) hashing algorithm is used:13 =begin code :allow<A>14 A<HASHCODE>15 =end code16 =end pod� �
Использование Perl 6 Pod Александр Загацкий
Семантические блоки
=begin SYNOPSISuse Magic::Parsermy Magic::Parser $parser .= new();my $tree = $parser.parse($fh);
=end SYNOPSIS
Использование Perl 6 Pod Александр Загацкий
=config и :like
Предварительное конфигурирование
=config head1 :formatted<B U> :numbered=config head2 :like<head1> :formatted<I>=config head3 :formatted<U>=config head4 :like<head3> :formatted<I>=config C<> :allow<E I>
:like - блок имеет такие же параметры форматирования какимя блока указанного в качестве значения.
=for para :like<head4>some text
Использование Perl 6 Pod Александр Загацкий
Расширяемость
Режим документацииperl –doc DBI::DBD::MetadataПодключение расширений
DOC use Pod6::Image;
=Image http://example.com/perl_logo_32x104.png
Переопределение Pod обработчика:
DOC INIT {use My::Pod::To::Text;pod_to_text( $=POD );exit(0);
}
Использование Perl 6 Pod Александр Загацкий
1.Реализация на perl5 (Domian Conway)
http://search.cpan.org/dist/Perl6-Perldoc/
Использование Perl 6 Pod Александр Загацкий
2.Реализация на perl5: Perl6::Pod
http://search.cpan.org/dist/Perl6-Pod/
Использование Perl 6 Pod Александр Загацкий
3.Реaлизация на Rakudo (Martin Berends)
http://github.com/eric256/perl6-examples/tree/master/bin
Использование Perl 6 Pod Александр Загацкий
4.Реaлизация на Rakudo (SUPERNOVA)
http://github.com/lue/SUPERNOVA
Использование Perl 6 Pod Александр Загацкий
5.Google Summer of Code
"Pod parser for Rakudo"
Использование Perl 6 Pod Александр Загацкий
Презентации: Perl6::Pod::Slide
Perl6::Pod::Slide: Latex + beamer
� �1 =begin Slide :title(’5.Google␣Summer␣of␣Code’)2 "Pod␣parser␣for␣Rakudo"3 =Image i/p6-gscode.jpg4 =end Slide� �
+ возможность ввода формул
Γ0S0(1− α)2 = kdα2 ⇒(1− α
α
)2=
kd
Γ0S0
Использование Perl 6 Pod Александр Загацкий
Perl6::Pod::Slide: Списки
Перечисляемые списки:
=item руководства для конечных пользователей=item Wiki, CMS ...=item Элементы сруктуры документа
Результат:
руководства для конечных пользователейWiki, CMS ...Элементы сруктуры документа
Использование Perl 6 Pod Александр Загацкий
Perl6::Pod::Slide: Списки
Перечисляемые списки:
=item руководства для конечных пользователей=item Wiki, CMS ...=item Элементы сруктуры документа
Результат:
руководства для конечных пользователейWiki, CMS ...Элементы сруктуры документа
Использование Perl 6 Pod Александр Загацкий
Perl6::Pod::Slide: Списки и атрибуты
Нумерованные списки и атрибут :pause:
=for item :numberedСписки=for item :numbered :pauseТаблицы=for item :numberedУровни заголовков
Результат:
1 Списки2 Таблицы3 Уровни заголовков
Использование Perl 6 Pod Александр Загацкий
Perl6::Pod::Slide: Списки и атрибуты
Нумерованные списки и атрибут :pause:
=for item :numberedСписки=for item :numbered :pauseТаблицы=for item :numberedУровни заголовков
Результат:
1 Списки2 Таблицы
3 Уровни заголовков
Использование Perl 6 Pod Александр Загацкий
Perl6::Pod::Slide: Списки и атрибуты
Нумерованные списки и атрибут :pause:
=for item :numberedСписки=for item :numbered :pauseТаблицы=for item :numberedУровни заголовков
Результат:
1 Списки2 Таблицы3 Уровни заголовков
Использование Perl 6 Pod Александр Загацкий
Perl6::Pod::Slide: Создание pdf
Экспорт в Tex:
pod6slide < tech_docs.pod > tech_docs.tex
Конвертация в Pdf:
pdflatex tech_docs.tex
Использование Perl 6 Pod Александр Загацкий
zag.ru: Формат для блога
Расширяем для поддержки доп функционала. Например:=Image
Использование Perl 6 Pod Александр Загацкий
Формат для книги о Perl 6
Книга "Все о Perl 6". http://zag.ru/perl6-book/
Использование Perl 6 Pod Александр Загацкий
Глава посвященная Pod
Использование Perl 6 Pod Александр Загацкий
Perl 6 Pod to HTML: http://zag.ru/perl6-pod/
Использование Perl 6 Pod Александр Загацкий
Вопросы ?
S26 Documentationhttps://github.com/zag/specs/raw/master/S26-documentation.podhome page, mail http://zag.ru, zag(at)cpan.org
Использование Perl 6 Pod Александр Загацкий