Download - Using perl6-pod
Использование 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 Александр Загацкий