using perl6-pod

35
Использование Perl 6 Pod Александр Загацкий 14 мая 2011

Upload: zagru

Post on 07-Nov-2014

1.314 views

Category:

Technology


0 download

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

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

Александр Загацкий

14 мая 2011

Page 2: Using perl6-pod

Кто я

http://search.cpan.org/∼zag/lang/rakudo ( FreeBSD )книга "Все о Perl 6"

Использование Perl 6 Pod Александр Загацкий

Page 3: Using perl6-pod

Содержание

Основные моменты:

Введение в PodСтруктура PodФитчи PodРеализацииПрименение Pod

Использование Perl 6 Pod Александр Загацкий

Page 4: Using perl6-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 Александр Загацкий

Page 5: Using perl6-pod

POD -> Pod

POD - Perl Old Documentation

Pod в S26:Pod - является эволюцией POD. В сравнении с POD, Perl6 Pod более однороден, компактен и выразительнее. Podтакже характеризуется описательной нотацией разметки,

вместо презентационной.

Таким образом Pod избавился от слова "старый".

Использование Perl 6 Pod Александр Загацкий

Page 6: Using perl6-pod

Отличия POD от Pod: Границы блоков документции.

POD� �1 =head12 ...34 =cut� �

PodРазграниченные блоки / Delimited blocksБлоки-параграфы / Paragraph blocksСокращенные блоки / Abbreviated blocksБлоки-деклараторы / Declarator blocks (*)

Использование Perl 6 Pod Александр Загацкий

Page 7: Using perl6-pod

Параметры блоков

Конфигурационные параметры представлены парной нотациейв стиле perl6 (S02)

=for Image :title(’3 стиля для =table’)= :align(’center’) :!bordersrc/3block_datapng.png

Использование Perl 6 Pod Александр Загацкий

Page 8: Using perl6-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 Александр Загацкий

Page 9: Using perl6-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 Александр Загацкий

Page 10: Using perl6-pod

access to pod/doc text by code

Использование Perl 6 Pod Александр Загацкий

Page 11: Using perl6-pod

Особенности Pod

=item, =itemN - уровни в списках=table определение таблицконтекстуальные псевдонимы=SYNOPSIS, =NAME ... - семантические блоки=config, :like - предварительное конфигурирование ипараметр :likeDOC use - расширяемость

Использование Perl 6 Pod Александр Загацкий

Page 12: Using perl6-pod

Уровни в списках

� �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

Таблицы (=table)

Использование Perl 6 Pod Александр Загацкий

Page 14: Using perl6-pod

Таблицы (=table)

Использование Perl 6 Pod Александр Загацкий

Page 15: Using perl6-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 Александр Загацкий

Page 16: Using perl6-pod

Семантические блоки

=begin SYNOPSISuse Magic::Parsermy Magic::Parser $parser .= new();my $tree = $parser.parse($fh);

=end SYNOPSIS

Использование Perl 6 Pod Александр Загацкий

Page 17: Using perl6-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 Александр Загацкий

Page 18: Using perl6-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 Александр Загацкий

Page 19: Using perl6-pod

1.Реализация на perl5 (Domian Conway)

http://search.cpan.org/dist/Perl6-Perldoc/

Использование Perl 6 Pod Александр Загацкий

Page 20: Using perl6-pod

2.Реализация на perl5: Perl6::Pod

http://search.cpan.org/dist/Perl6-Pod/

Использование Perl 6 Pod Александр Загацкий

Page 21: Using perl6-pod

3.Реaлизация на Rakudo (Martin Berends)

http://github.com/eric256/perl6-examples/tree/master/bin

Использование Perl 6 Pod Александр Загацкий

Page 22: Using perl6-pod

4.Реaлизация на Rakudo (SUPERNOVA)

http://github.com/lue/SUPERNOVA

Использование Perl 6 Pod Александр Загацкий

Page 23: Using perl6-pod

5.Google Summer of Code

"Pod parser for Rakudo"

Использование Perl 6 Pod Александр Загацкий

Page 24: Using perl6-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 Александр Загацкий

Page 25: Using perl6-pod

Perl6::Pod::Slide: Списки

Перечисляемые списки:

=item руководства для конечных пользователей=item Wiki, CMS ...=item Элементы сруктуры документа

Результат:

руководства для конечных пользователейWiki, CMS ...Элементы сруктуры документа

Использование Perl 6 Pod Александр Загацкий

Page 26: Using perl6-pod

Perl6::Pod::Slide: Списки

Перечисляемые списки:

=item руководства для конечных пользователей=item Wiki, CMS ...=item Элементы сруктуры документа

Результат:

руководства для конечных пользователейWiki, CMS ...Элементы сруктуры документа

Использование Perl 6 Pod Александр Загацкий

Page 27: Using perl6-pod

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

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

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

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

zag.ru: Формат для блога

Расширяем для поддержки доп функционала. Например:=Image

Использование Perl 6 Pod Александр Загацкий

Page 32: Using perl6-pod

Формат для книги о Perl 6

Книга "Все о Perl 6". http://zag.ru/perl6-book/

Использование Perl 6 Pod Александр Загацкий

Page 33: Using perl6-pod

Глава посвященная Pod

Использование Perl 6 Pod Александр Загацкий

Page 34: Using perl6-pod

Perl 6 Pod to HTML: http://zag.ru/perl6-pod/

Использование Perl 6 Pod Александр Загацкий

Page 35: Using perl6-pod

Вопросы ?

S26 Documentationhttps://github.com/zag/specs/raw/master/S26-documentation.podhome page, mail http://zag.ru, zag(at)cpan.org

Использование Perl 6 Pod Александр Загацкий