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
![Page 1: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/1.jpg)
Использование Perl 6 Pod
Александр Загацкий
14 мая 2011
![Page 2: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/2.jpg)
Кто я
http://search.cpan.org/∼zag/lang/rakudo ( FreeBSD )книга "Все о Perl 6"
Использование Perl 6 Pod Александр Загацкий
![Page 3: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/3.jpg)
Содержание
Основные моменты:
Введение в PodСтруктура PodФитчи PodРеализацииПрименение Pod
Использование Perl 6 Pod Александр Загацкий
![Page 4: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/4.jpg)
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 Александр Загацкий
![Page 5: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/5.jpg)
POD -> Pod
POD - Perl Old Documentation
Pod в S26:Pod - является эволюцией POD. В сравнении с POD, Perl6 Pod более однороден, компактен и выразительнее. Podтакже характеризуется описательной нотацией разметки,
вместо презентационной.
Таким образом Pod избавился от слова "старый".
Использование Perl 6 Pod Александр Загацкий
![Page 6: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/6.jpg)
Отличия POD от Pod: Границы блоков документции.
POD� �1 =head12 ...34 =cut� �
PodРазграниченные блоки / Delimited blocksБлоки-параграфы / Paragraph blocksСокращенные блоки / Abbreviated blocksБлоки-деклараторы / Declarator blocks (*)
Использование Perl 6 Pod Александр Загацкий
![Page 7: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/7.jpg)
Параметры блоков
Конфигурационные параметры представлены парной нотациейв стиле perl6 (S02)
=for Image :title(’3 стиля для =table’)= :align(’center’) :!bordersrc/3block_datapng.png
Использование Perl 6 Pod Александр Загацкий
![Page 8: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/8.jpg)
Равнозначность стилевых блоков
Типы блоков одинаково представлены во внутренней структуредокумента.
=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 Александр Загацкий
![Page 9: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/9.jpg)
Блоки-деклараторы / 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 Александр Загацкий
![Page 10: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/10.jpg)
access to pod/doc text by code
Использование Perl 6 Pod Александр Загацкий
![Page 11: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/11.jpg)
Особенности Pod
=item, =itemN - уровни в списках=table определение таблицконтекстуальные псевдонимы=SYNOPSIS, =NAME ... - семантические блоки=config, :like - предварительное конфигурирование ипараметр :likeDOC use - расширяемость
Использование Perl 6 Pod Александр Загацкий
![Page 12: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/12.jpg)
Уровни в списках
� �1 =item1 Animal2 =item2 Vertebrate3 =item2 Invertebrate45 =item1 Phase6 =item2 Solid7 =item2 Chocolate� �
Результат
* Animal- Vertebrate- Invertebrate
* Phase- Solid- Chocolate
Использование Perl 6 Pod Александр Загацкий
![Page 13: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/13.jpg)
Таблицы (=table)
Использование Perl 6 Pod Александр Загацкий
![Page 14: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/14.jpg)
Таблицы (=table)
Использование Perl 6 Pod Александр Загацкий
![Page 15: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/15.jpg)
Контекстуальные псевдонимы
Включение кода без копирования� �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 Александр Загацкий
![Page 16: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/16.jpg)
Семантические блоки
=begin SYNOPSISuse Magic::Parsermy Magic::Parser $parser .= new();my $tree = $parser.parse($fh);
=end SYNOPSIS
Использование Perl 6 Pod Александр Загацкий
![Page 17: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/17.jpg)
=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 Александр Загацкий
![Page 18: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/18.jpg)
Расширяемость
Режим документации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 Александр Загацкий
![Page 19: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/19.jpg)
1.Реализация на perl5 (Domian Conway)
http://search.cpan.org/dist/Perl6-Perldoc/
Использование Perl 6 Pod Александр Загацкий
![Page 20: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/20.jpg)
2.Реализация на perl5: Perl6::Pod
http://search.cpan.org/dist/Perl6-Pod/
Использование Perl 6 Pod Александр Загацкий
![Page 21: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/21.jpg)
3.Реaлизация на Rakudo (Martin Berends)
http://github.com/eric256/perl6-examples/tree/master/bin
Использование Perl 6 Pod Александр Загацкий
![Page 22: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/22.jpg)
4.Реaлизация на Rakudo (SUPERNOVA)
http://github.com/lue/SUPERNOVA
Использование Perl 6 Pod Александр Загацкий
![Page 23: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/23.jpg)
5.Google Summer of Code
"Pod parser for Rakudo"
Использование Perl 6 Pod Александр Загацкий
![Page 24: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/24.jpg)
Презентации: 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 Александр Загацкий
![Page 25: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/25.jpg)
Perl6::Pod::Slide: Списки
Перечисляемые списки:
=item руководства для конечных пользователей=item Wiki, CMS ...=item Элементы сруктуры документа
Результат:
руководства для конечных пользователейWiki, CMS ...Элементы сруктуры документа
Использование Perl 6 Pod Александр Загацкий
![Page 26: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/26.jpg)
Perl6::Pod::Slide: Списки
Перечисляемые списки:
=item руководства для конечных пользователей=item Wiki, CMS ...=item Элементы сруктуры документа
Результат:
руководства для конечных пользователейWiki, CMS ...Элементы сруктуры документа
Использование Perl 6 Pod Александр Загацкий
![Page 27: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/27.jpg)
Perl6::Pod::Slide: Списки и атрибуты
Нумерованные списки и атрибут :pause:
=for item :numberedСписки=for item :numbered :pauseТаблицы=for item :numberedУровни заголовков
Результат:
1 Списки2 Таблицы3 Уровни заголовков
Использование Perl 6 Pod Александр Загацкий
![Page 28: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/28.jpg)
Perl6::Pod::Slide: Списки и атрибуты
Нумерованные списки и атрибут :pause:
=for item :numberedСписки=for item :numbered :pauseТаблицы=for item :numberedУровни заголовков
Результат:
1 Списки2 Таблицы
3 Уровни заголовков
Использование Perl 6 Pod Александр Загацкий
![Page 29: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/29.jpg)
Perl6::Pod::Slide: Списки и атрибуты
Нумерованные списки и атрибут :pause:
=for item :numberedСписки=for item :numbered :pauseТаблицы=for item :numberedУровни заголовков
Результат:
1 Списки2 Таблицы3 Уровни заголовков
Использование Perl 6 Pod Александр Загацкий
![Page 30: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/30.jpg)
Perl6::Pod::Slide: Создание pdf
Экспорт в Tex:
pod6slide < tech_docs.pod > tech_docs.tex
Конвертация в Pdf:
pdflatex tech_docs.tex
Использование Perl 6 Pod Александр Загацкий
![Page 31: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/31.jpg)
zag.ru: Формат для блога
Расширяем для поддержки доп функционала. Например:=Image
Использование Perl 6 Pod Александр Загацкий
![Page 32: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/32.jpg)
Формат для книги о Perl 6
Книга "Все о Perl 6". http://zag.ru/perl6-book/
Использование Perl 6 Pod Александр Загацкий
![Page 33: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/33.jpg)
Глава посвященная Pod
Использование Perl 6 Pod Александр Загацкий
![Page 34: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/34.jpg)
Perl 6 Pod to HTML: http://zag.ru/perl6-pod/
Использование Perl 6 Pod Александр Загацкий
![Page 35: Using perl6-pod](https://reader034.vdocuments.net/reader034/viewer/2022051108/545c4f51b1af9f410a8b4707/html5/thumbnails/35.jpg)
Вопросы ?
S26 Documentationhttps://github.com/zag/specs/raw/master/S26-documentation.podhome page, mail http://zag.ru, zag(at)cpan.org
Использование Perl 6 Pod Александр Загацкий