using perl6-pod

Post on 07-Nov-2014

1.314 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

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

top related