SlideShare uma empresa Scribd logo
1 de 42
Baixar para ler offline
Perl 6 Pod - формат ведения документации

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



                   lvee
Кто я




     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 Generation
     31 июля 2010 Последняя редакция. :!DRAFT
Perl 6 Pod - формат ведения документации                 Александр Загацкий
POD -> Pod




            POD - Plain Old Documentation

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

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




Perl 6 Pod - формат ведения документации                  Александр Загацкий
Отличия POD от Pod: Границы блоков документции.
     POD
           §                                                 ¤
               1   =head1
               2   ...
               3
               4   =cut
           ¦                                                 ¥
     Pod
            Разграниченные блоки / Delimited blocks
            Блоки-параграфы / Paragraph blocks
            Сокращенные блоки / Abbreviated blocks
            Блоки-деклараторы / Declarator blocks (*)




Perl 6 Pod - формат ведения документации                Александр Загацкий
Параметры блоков

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




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



Perl 6 Pod - формат ведения документации              Александр Загацкий
Равнозначность стилевых блоков

     Типы блоков одинаково представлены во внутренней структуре
     документа.




Perl 6 Pod - формат ведения документации               Александр Загацкий
Блоки-деклараторы / Declarator blocks



     Блоки без имен.Ассоциируются с ближайшим декларатором.
           §                                                                  ¤
               1   sub fu (            #= This text stored in &fu.WHY
               2     Any    $bar,      #= This text stored in $bar.WHY
               3     Mode   :$baz     #= This text stored in $baz.WHY
               4       ) { ... }
               5
               6   #= This is a special chainsaw
               7   my SwissArmy $chainsaw #= (It has a rocket launcher)
               8
               9   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 - формат ведения документации   Александр Загацкий
Доступ к документации из кода



     Программы будущего будут согласовывать свои действия с
     документацией !




Perl 6 Pod - формат ведения документации              Александр Загацкий
Особенности Pod


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




Perl 6 Pod - формат ведения документации                  Александр Загацкий
Уровни в списках

           §                                     ¤
               1   =item1 Animal
               2   =item2    Vertebrate
               3   =item2    Invertebrate
               4
               5   =item1 Phase
               6   =item2    Solid
               7   =item2    Chocolate
           ¦                                     ¥

     Результат
            * Animal
              - Vertebrate
              - Invertebrate

            * Phase
              - Solid
              - Chocolate

Perl 6 Pod - формат ведения документации    Александр Загацкий
Таблицы (=table)




Perl 6 Pod - формат ведения документации   Александр Загацкий
Таблицы (=table)




Perl 6 Pod - формат ведения документации   Александр Загацкий
Именованные псевдонимы




       =alias PROGNAME                Earl Irradiatem Eventually
       =alias VENDOR                  4D Kingdoms
       =alias TERMSURL               L<http://www.4dk.com/eie>


       The use of A<PROGNAME> is subject to the terms
       and conditions laid out by A<VENDOR>,
       as specified at A<TERMSURL>.




Perl 6 Pod - формат ведения документации                           Александр Загацкий
Именованные псевдонимы.



     A<$?FILE> - имя теущего файла
     A<$?ROUTINE> - подпрограмма, внутри которой размещен
     блок Pod
     A<$?CLASS> - текущий класс
     Программные константы в документации:
           §                                                                 ¤
               1       # Actual code...
               2       constant $GROWTH_RATE of Num where 0..* = 1.6;
               3       =pod
               4       =head4 Standard Growth Rate
               5       The standard growth rate is assumed
               6       to be A<$GROWTH_RATE>.
           ¦                                                                 ¥




Perl 6 Pod - формат ведения документации                                Александр Загацкий
Контекстуальные псевдонимы

     Включение кода без копирования
           §                                                               ¤
               1   # This is actual code...
               2   sub hash_function ($key)
               3   =alias HASHCODE
               4   {
               5      my $hash = 0;
               6      for $key.split("") -> $char {
               7          $hash = $hash*33 + $char.ord;
               8      }
               9      return $hash;
             10    }
             11    =begin pod
             12    An ancient (but fast) hashing algorithm is used:
             13    =begin code :allow<A>
             14     A<HASHCODE>
             15    =end code
             16    =end pod
           ¦                                                               ¥



Perl 6 Pod - формат ведения документации                              Александр Загацкий
Семантические блоки




            =begin SYNOPSIS
                use Magic::Parser
                my 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.Реализация на Perl 5 (Domian Conway)
     http://search.cpan.org/dist/Perl6-Perldoc/




Perl 6 Pod - формат ведения документации          Александр Загацкий
2.Реализация на Perl 5: 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.jpg
               4   =end Slide
           ¦                                                                     ¥


            + возможность ввода формул
                                                    1−α     2        kd
                   Γ0 S0 (1 − α)2 = kd α2   ⇒                   =
                                                     α              Γ0 S0




Perl 6 Pod - формат ведения документации                                    Александр Загацкий
Perl6::Pod::Slide: Списки



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

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


     Результат:




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
       Уровни заголовков


     Результат:




Perl 6 Pod - формат ведения документации     Александр Загацкий
Perl6::Pod::Slide: Списки и атрибуты


     Нумерованные списки и атрибут :pause:

       =for item :numbered
       Списки
       =for item :numbered :pause
       Таблицы
       =for item :numbered
       Уровни заголовков


     Результат:
        1   Списки
        2   Таблицы




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: Вставка кода


     Perl 6

       =for code :lang(’Perl’)
       my @keys = <a b c d e>;
       my @vals = ^5;
       my %hash = @keys Z @vals;


     Результат:
           §                                        ¤
               1   my @keys = <a b c d e>;
               2   my @vals = ^5;
               3   my %hash = @keys Z @vals;
           ¦                                        ¥




Perl 6 Pod - формат ведения документации       Александр Загацкий
Perl6::Pod::Slide: Вставка кода
     JavaScript
       =begin code :lang(’JavaScript’)
       var keys = [’a’, ’b’, ’c’];
       var values = [1, 2, 3];
       var map = {}; //this is a comment
       for(var i in keys) {
        map[ keys[i] ] = values[i];
       }
       =end code


     Результат:
           §                                                ¤
               1   var keys = [’a’, ’b’, ’c’];
               2   var values = [1, 2, 3];
               3   var map = {}; //this is a comment
               4   for(var i in keys) {
               5    map[ keys[i] ] = values[i];
               6   }
           ¦                                                ¥
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 - формат ведения документации       Александр Загацкий
WriteAt.com - cоздание и публикация книг в сети




Perl 6 Pod - формат ведения документации          Александр Загацкий
Как это работает




Perl 6 Pod - формат ведения документации   Александр Загацкий
Вопросы
     Вопросы ?




            S26 Documentation
            https://github.com/zag/specs/raw/master/S26-
            documentation.pod
            Все о Perl 6 http://zag.ru/perl6-book/
            home page, mail http://zag.ru, zag(at)cpan.org
Perl 6 Pod - формат ведения документации                     Александр Загацкий

Mais conteúdo relacionado

Mais procurados

PHP Tricks
PHP TricksPHP Tricks
PHP TricksBlackFan
 
Making of external DSL for Django ORM - Павел Петлинский, Rambler&Co
Making of external DSL for Django ORM - Павел Петлинский, Rambler&CoMaking of external DSL for Django ORM - Павел Петлинский, Rambler&Co
Making of external DSL for Django ORM - Павел Петлинский, Rambler&Coit-people
 
ZFConf 2010: What News Zend Framework 2.0 Brings to Us
ZFConf 2010: What News Zend Framework 2.0 Brings to UsZFConf 2010: What News Zend Framework 2.0 Brings to Us
ZFConf 2010: What News Zend Framework 2.0 Brings to UsZFConf Conference
 
Zend Framework и мультиязычность
Zend Framework и мультиязычностьZend Framework и мультиязычность
Zend Framework и мультиязычностьStepan Tanasiychuk
 
Программирование Linux
Программирование LinuxПрограммирование Linux
Программирование LinuxAnthony Shoumikhin
 
лабораторная работа №9
лабораторная работа №9лабораторная работа №9
лабораторная работа №9Zhanna Kazakova
 
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"Technopark
 
Возможности и проблемы FFI в Haskell. Александр Вершилов
Возможности и проблемы FFI в Haskell. Александр ВершиловВозможности и проблемы FFI в Haskell. Александр Вершилов
Возможности и проблемы FFI в Haskell. Александр ВершиловЮрий Сыровецкий
 
Программирование Linux
Программирование LinuxПрограммирование Linux
Программирование LinuxAnthony Shoumikhin
 
Hacking PostgreSQL. Физическое представление данных
Hacking PostgreSQL. Физическое представление данныхHacking PostgreSQL. Физическое представление данных
Hacking PostgreSQL. Физическое представление данныхAnastasia Lubennikova
 
Rich UI on Dojo Toolkit and Zend Framework
Rich UI on Dojo Toolkit and Zend FrameworkRich UI on Dojo Toolkit and Zend Framework
Rich UI on Dojo Toolkit and Zend FrameworkGeorgy Turevich
 
«Introduction to malware reverse engineering» by Sergey Kharyuk aka ximerus
 «Introduction to malware reverse engineering» by Sergey Kharyuk aka ximerus «Introduction to malware reverse engineering» by Sergey Kharyuk aka ximerus
«Introduction to malware reverse engineering» by Sergey Kharyuk aka ximerus0xdec0de
 
Программирование Linux
Программирование LinuxПрограммирование Linux
Программирование LinuxAnthony Shoumikhin
 
XML Native Database на примере SednaXML
XML Native Database на примере SednaXMLXML Native Database на примере SednaXML
XML Native Database на примере SednaXMLSlach
 

Mais procurados (17)

PHP Tricks
PHP TricksPHP Tricks
PHP Tricks
 
Приручаем linux-консоль
Приручаем linux-консольПриручаем linux-консоль
Приручаем linux-консоль
 
Making of external DSL for Django ORM - Павел Петлинский, Rambler&Co
Making of external DSL for Django ORM - Павел Петлинский, Rambler&CoMaking of external DSL for Django ORM - Павел Петлинский, Rambler&Co
Making of external DSL for Django ORM - Павел Петлинский, Rambler&Co
 
ZFConf 2010: What News Zend Framework 2.0 Brings to Us
ZFConf 2010: What News Zend Framework 2.0 Brings to UsZFConf 2010: What News Zend Framework 2.0 Brings to Us
ZFConf 2010: What News Zend Framework 2.0 Brings to Us
 
Zend Framework и мультиязычность
Zend Framework и мультиязычностьZend Framework и мультиязычность
Zend Framework и мультиязычность
 
Программирование Linux
Программирование LinuxПрограммирование Linux
Программирование Linux
 
лабораторная работа №9
лабораторная работа №9лабораторная работа №9
лабораторная работа №9
 
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
 
Возможности и проблемы FFI в Haskell. Александр Вершилов
Возможности и проблемы FFI в Haskell. Александр ВершиловВозможности и проблемы FFI в Haskell. Александр Вершилов
Возможности и проблемы FFI в Haskell. Александр Вершилов
 
Программирование Linux
Программирование LinuxПрограммирование Linux
Программирование Linux
 
Хэши в ruby
Хэши в rubyХэши в ruby
Хэши в ruby
 
Hacking PostgreSQL. Физическое представление данных
Hacking PostgreSQL. Физическое представление данныхHacking PostgreSQL. Физическое представление данных
Hacking PostgreSQL. Физическое представление данных
 
file handling in c
file handling in cfile handling in c
file handling in c
 
Rich UI on Dojo Toolkit and Zend Framework
Rich UI on Dojo Toolkit and Zend FrameworkRich UI on Dojo Toolkit and Zend Framework
Rich UI on Dojo Toolkit and Zend Framework
 
«Introduction to malware reverse engineering» by Sergey Kharyuk aka ximerus
 «Introduction to malware reverse engineering» by Sergey Kharyuk aka ximerus «Introduction to malware reverse engineering» by Sergey Kharyuk aka ximerus
«Introduction to malware reverse engineering» by Sergey Kharyuk aka ximerus
 
Программирование Linux
Программирование LinuxПрограммирование Linux
Программирование Linux
 
XML Native Database на примере SednaXML
XML Native Database на примере SednaXMLXML Native Database на примере SednaXML
XML Native Database на примере SednaXML
 

Destaque

4e Nationale Docentencongres Biologie
4e Nationale Docentencongres Biologie4e Nationale Docentencongres Biologie
4e Nationale Docentencongres BiologieRemco Bron
 
HostingCon 2011 - Why Your Business May Be Worth More (or Less) To You Than A...
HostingCon 2011 - Why Your Business May Be Worth More (or Less) To You Than A...HostingCon 2011 - Why Your Business May Be Worth More (or Less) To You Than A...
HostingCon 2011 - Why Your Business May Be Worth More (or Less) To You Than A...Cheval Capital, Inc
 
Hillary Stiff - HostingCon July 2006, "Mergers & Acquisitions in the Web Host...
Hillary Stiff - HostingCon July 2006, "Mergers & Acquisitions in the Web Host...Hillary Stiff - HostingCon July 2006, "Mergers & Acquisitions in the Web Host...
Hillary Stiff - HostingCon July 2006, "Mergers & Acquisitions in the Web Host...Cheval Capital, Inc
 
Кирилл Голуб От группы программистов к полноценному бизнесу: проблемы развити...
Кирилл Голуб От группы программистов к полноценному бизнесу: проблемы развити...Кирилл Голуб От группы программистов к полноценному бизнесу: проблемы развити...
Кирилл Голуб От группы программистов к полноценному бизнесу: проблемы развити...Транслируем.бел
 
Dec 8, 2008 - Web Host Boot Camp Slides (Final)
Dec 8, 2008 - Web Host Boot Camp Slides (Final)Dec 8, 2008 - Web Host Boot Camp Slides (Final)
Dec 8, 2008 - Web Host Boot Camp Slides (Final)Cheval Capital, Inc
 
"How Much is Your Hosting Company Worth?" Hillary Stiff, Cheval Capital Inc, ...
"How Much is Your Hosting Company Worth?" Hillary Stiff, Cheval Capital Inc, ..."How Much is Your Hosting Company Worth?" Hillary Stiff, Cheval Capital Inc, ...
"How Much is Your Hosting Company Worth?" Hillary Stiff, Cheval Capital Inc, ...Cheval Capital, Inc
 
12 misys (1)
12  misys (1)12  misys (1)
12 misys (1)3camp
 
Prezentacja firmy Kainos
Prezentacja firmy KainosPrezentacja firmy Kainos
Prezentacja firmy Kainos3camp
 

Destaque (9)

4e Nationale Docentencongres Biologie
4e Nationale Docentencongres Biologie4e Nationale Docentencongres Biologie
4e Nationale Docentencongres Biologie
 
15
1515
15
 
HostingCon 2011 - Why Your Business May Be Worth More (or Less) To You Than A...
HostingCon 2011 - Why Your Business May Be Worth More (or Less) To You Than A...HostingCon 2011 - Why Your Business May Be Worth More (or Less) To You Than A...
HostingCon 2011 - Why Your Business May Be Worth More (or Less) To You Than A...
 
Hillary Stiff - HostingCon July 2006, "Mergers & Acquisitions in the Web Host...
Hillary Stiff - HostingCon July 2006, "Mergers & Acquisitions in the Web Host...Hillary Stiff - HostingCon July 2006, "Mergers & Acquisitions in the Web Host...
Hillary Stiff - HostingCon July 2006, "Mergers & Acquisitions in the Web Host...
 
Кирилл Голуб От группы программистов к полноценному бизнесу: проблемы развити...
Кирилл Голуб От группы программистов к полноценному бизнесу: проблемы развити...Кирилл Голуб От группы программистов к полноценному бизнесу: проблемы развити...
Кирилл Голуб От группы программистов к полноценному бизнесу: проблемы развити...
 
Dec 8, 2008 - Web Host Boot Camp Slides (Final)
Dec 8, 2008 - Web Host Boot Camp Slides (Final)Dec 8, 2008 - Web Host Boot Camp Slides (Final)
Dec 8, 2008 - Web Host Boot Camp Slides (Final)
 
"How Much is Your Hosting Company Worth?" Hillary Stiff, Cheval Capital Inc, ...
"How Much is Your Hosting Company Worth?" Hillary Stiff, Cheval Capital Inc, ..."How Much is Your Hosting Company Worth?" Hillary Stiff, Cheval Capital Inc, ...
"How Much is Your Hosting Company Worth?" Hillary Stiff, Cheval Capital Inc, ...
 
12 misys (1)
12  misys (1)12  misys (1)
12 misys (1)
 
Prezentacja firmy Kainos
Prezentacja firmy KainosPrezentacja firmy Kainos
Prezentacja firmy Kainos
 

Semelhante a Perl6 pod as new documentation format

Present saint-per3-by-pavel-vlasov
Present saint-per3-by-pavel-vlasovPresent saint-per3-by-pavel-vlasov
Present saint-per3-by-pavel-vlasovPavel Vlasov
 
Лекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и HiveЛекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и HiveTechnopark
 
Migrating from Perl 5 to 6
Migrating from Perl 5 to 6Migrating from Perl 5 to 6
Migrating from Perl 5 to 6Andrew Shitov
 
Андрей Субботин "Автоматизация локализации iOS-приложений"
Андрей Субботин "Автоматизация локализации iOS-приложений"Андрей Субботин "Автоматизация локализации iOS-приложений"
Андрей Субботин "Автоматизация локализации iOS-приложений"Yandex
 
Интеграция Яндекс Сервер
Интеграция Яндекс СерверИнтеграция Яндекс Сервер
Интеграция Яндекс СерверPVasili
 
Опыт использования Spark, Основано на реальных событиях
Опыт использования Spark, Основано на реальных событияхОпыт использования Spark, Основано на реальных событиях
Опыт использования Spark, Основано на реальных событияхVasil Remeniuk
 
Groovy On Grails
Groovy On GrailsGroovy On Grails
Groovy On Grailsguest32215a
 
Дмитрий Щадей "Зачем и как мы используем jsLint"
Дмитрий Щадей "Зачем и как мы используем jsLint"Дмитрий Щадей "Зачем и как мы используем jsLint"
Дмитрий Щадей "Зачем и как мы используем jsLint"Yandex
 
plwww (24.03) MEPHI (PHDays)
plwww (24.03) MEPHI (PHDays)plwww (24.03) MEPHI (PHDays)
plwww (24.03) MEPHI (PHDays)ygoltsev
 
PHP basic
PHP basicPHP basic
PHP basicNoveo
 
Юрий Гольцев - Сервис PLWWW
Юрий Гольцев - Сервис PLWWWЮрий Гольцев - Сервис PLWWW
Юрий Гольцев - Сервис PLWWWPositive Hack Days
 
Разработка на Perl под Raspberry PI
Разработка на Perl под Raspberry PIРазработка на Perl под Raspberry PI
Разработка на Perl под Raspberry PIIlya Chesnokov
 
Easy authcache 2 кэширование для pro. Родионов Игорь
Easy authcache 2   кэширование для pro. Родионов ИгорьEasy authcache 2   кэширование для pro. Родионов Игорь
Easy authcache 2 кэширование для pro. Родионов ИгорьPVasili
 
Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15Alexey Zinoviev
 
Документирование исходных текстов (javadoc)
Документирование исходных текстов (javadoc)Документирование исходных текстов (javadoc)
Документирование исходных текстов (javadoc)Fedor Malyshkin
 
poudriere или как я перестал волноваться и полюбил pkg
poudriere или как я перестал волноваться и полюбил pkgpoudriere или как я перестал волноваться и полюбил pkg
poudriere или как я перестал волноваться и полюбил pkgAndrey Fesenko
 
Расширенное кеширование Doctrine2 (Ильяс Салихов, Intaro)
Расширенное кеширование Doctrine2 (Ильяс Салихов, Intaro)Расширенное кеширование Doctrine2 (Ильяс Салихов, Intaro)
Расширенное кеширование Doctrine2 (Ильяс Салихов, Intaro)Symfoniacs
 

Semelhante a Perl6 pod as new documentation format (20)

Present saint-per3-by-pavel-vlasov
Present saint-per3-by-pavel-vlasovPresent saint-per3-by-pavel-vlasov
Present saint-per3-by-pavel-vlasov
 
Лекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и HiveЛекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и Hive
 
Perl in da shell
Perl in da shellPerl in da shell
Perl in da shell
 
Migrating from Perl 5 to 6
Migrating from Perl 5 to 6Migrating from Perl 5 to 6
Migrating from Perl 5 to 6
 
Андрей Субботин "Автоматизация локализации iOS-приложений"
Андрей Субботин "Автоматизация локализации iOS-приложений"Андрей Субботин "Автоматизация локализации iOS-приложений"
Андрей Субботин "Автоматизация локализации iOS-приложений"
 
Интеграция Яндекс Сервер
Интеграция Яндекс СерверИнтеграция Яндекс Сервер
Интеграция Яндекс Сервер
 
Опыт использования Spark, Основано на реальных событиях
Опыт использования Spark, Основано на реальных событияхОпыт использования Spark, Основано на реальных событиях
Опыт использования Spark, Основано на реальных событиях
 
Groovy On Grails
Groovy On GrailsGroovy On Grails
Groovy On Grails
 
Дмитрий Щадей "Зачем и как мы используем jsLint"
Дмитрий Щадей "Зачем и как мы используем jsLint"Дмитрий Щадей "Зачем и как мы используем jsLint"
Дмитрий Щадей "Зачем и как мы используем jsLint"
 
09 - Hadoop. Pig
09 - Hadoop. Pig09 - Hadoop. Pig
09 - Hadoop. Pig
 
plwww (24.03) MEPHI (PHDays)
plwww (24.03) MEPHI (PHDays)plwww (24.03) MEPHI (PHDays)
plwww (24.03) MEPHI (PHDays)
 
php frameworks
php frameworksphp frameworks
php frameworks
 
PHP basic
PHP basicPHP basic
PHP basic
 
Юрий Гольцев - Сервис PLWWW
Юрий Гольцев - Сервис PLWWWЮрий Гольцев - Сервис PLWWW
Юрий Гольцев - Сервис PLWWW
 
Разработка на Perl под Raspberry PI
Разработка на Perl под Raspberry PIРазработка на Perl под Raspberry PI
Разработка на Perl под Raspberry PI
 
Easy authcache 2 кэширование для pro. Родионов Игорь
Easy authcache 2   кэширование для pro. Родионов ИгорьEasy authcache 2   кэширование для pro. Родионов Игорь
Easy authcache 2 кэширование для pro. Родионов Игорь
 
Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15
 
Документирование исходных текстов (javadoc)
Документирование исходных текстов (javadoc)Документирование исходных текстов (javadoc)
Документирование исходных текстов (javadoc)
 
poudriere или как я перестал волноваться и полюбил pkg
poudriere или как я перестал волноваться и полюбил pkgpoudriere или как я перестал волноваться и полюбил pkg
poudriere или как я перестал волноваться и полюбил pkg
 
Расширенное кеширование Doctrine2 (Ильяс Салихов, Intaro)
Расширенное кеширование Doctrine2 (Ильяс Салихов, Intaro)Расширенное кеширование Doctrine2 (Ильяс Салихов, Intaro)
Расширенное кеширование Doctrine2 (Ильяс Салихов, Intaro)
 

Mais de Транслируем.бел

Руководство по видео, трансляциям и премьерам (Youtube 2020)
Руководство по видео, трансляциям и премьерам (Youtube 2020)Руководство по видео, трансляциям и премьерам (Youtube 2020)
Руководство по видео, трансляциям и премьерам (Youtube 2020)Транслируем.бел
 
Корпоративный новый год онлайн
Корпоративный новый год онлайнКорпоративный новый год онлайн
Корпоративный новый год онлайнТранслируем.бел
 
Руководство для малого и среднего бизнеса по использованию цифровых решений
Руководство для малого и среднего бизнеса по использованию цифровых решенийРуководство для малого и среднего бизнеса по использованию цифровых решений
Руководство для малого и среднего бизнеса по использованию цифровых решенийТранслируем.бел
 
Онлайн-трансляции в соцсетях
Онлайн-трансляции в соцсетяхОнлайн-трансляции в соцсетях
Онлайн-трансляции в соцсетяхТранслируем.бел
 
Как организовать трансляцию в Facebook
Как организовать трансляцию в FacebookКак организовать трансляцию в Facebook
Как организовать трансляцию в FacebookТранслируем.бел
 
Что сделать, чтобы сто раз все не переделывать
Что сделать, чтобы сто раз все не переделыватьЧто сделать, чтобы сто раз все не переделывать
Что сделать, чтобы сто раз все не переделыватьТранслируем.бел
 
Когда сказать нет. Арсений Кравченко
Когда сказать нет. Арсений КравченкоКогда сказать нет. Арсений Кравченко
Когда сказать нет. Арсений КравченкоТранслируем.бел
 
SMM учебник. Как продвигать банк в социальных сетях. Наглядное пособие
SMM учебник. Как продвигать банк в социальных сетях. Наглядное пособиеSMM учебник. Как продвигать банк в социальных сетях. Наглядное пособие
SMM учебник. Как продвигать банк в социальных сетях. Наглядное пособиеТранслируем.бел
 
методы монетизации интернет проектов
методы монетизации интернет проектовметоды монетизации интернет проектов
методы монетизации интернет проектовТранслируем.бел
 

Mais de Транслируем.бел (20)

Медицинские трансляции
Медицинские трансляцииМедицинские трансляции
Медицинские трансляции
 
Vinteo
VinteoVinteo
Vinteo
 
Руководство по видео, трансляциям и премьерам (Youtube 2020)
Руководство по видео, трансляциям и премьерам (Youtube 2020)Руководство по видео, трансляциям и премьерам (Youtube 2020)
Руководство по видео, трансляциям и премьерам (Youtube 2020)
 
Корпоративный новый год онлайн
Корпоративный новый год онлайнКорпоративный новый год онлайн
Корпоративный новый год онлайн
 
Unofficial guide to vmix by streamgeeks
Unofficial guide to vmix by streamgeeksUnofficial guide to vmix by streamgeeks
Unofficial guide to vmix by streamgeeks
 
Руководство для малого и среднего бизнеса по использованию цифровых решений
Руководство для малого и среднего бизнеса по использованию цифровых решенийРуководство для малого и среднего бизнеса по использованию цифровых решений
Руководство для малого и среднего бизнеса по использованию цифровых решений
 
Sennheiser ew100 g2
Sennheiser ew100 g2Sennheiser ew100 g2
Sennheiser ew100 g2
 
Sony mcs 8m
Sony mcs 8mSony mcs 8m
Sony mcs 8m
 
Сравнение поколений Y и Z
Сравнение поколений Y и ZСравнение поколений Y и Z
Сравнение поколений Y и Z
 
Онлайн-трансляции в соцсетях
Онлайн-трансляции в соцсетяхОнлайн-трансляции в соцсетях
Онлайн-трансляции в соцсетях
 
Как организовать трансляцию в Facebook
Как организовать трансляцию в FacebookКак организовать трансляцию в Facebook
Как организовать трансляцию в Facebook
 
The ultimate guide to facebook live for your event
The ultimate guide to facebook live for your eventThe ultimate guide to facebook live for your event
The ultimate guide to facebook live for your event
 
Guide to facebook live
Guide to facebook liveGuide to facebook live
Guide to facebook live
 
Comdi player
Comdi playerComdi player
Comdi player
 
Что сделать, чтобы сто раз все не переделывать
Что сделать, чтобы сто раз все не переделыватьЧто сделать, чтобы сто раз все не переделывать
Что сделать, чтобы сто раз все не переделывать
 
Когда сказать нет. Арсений Кравченко
Когда сказать нет. Арсений КравченкоКогда сказать нет. Арсений Кравченко
Когда сказать нет. Арсений Кравченко
 
Marketing Essentials for Startup Teams
Marketing Essentials for Startup TeamsMarketing Essentials for Startup Teams
Marketing Essentials for Startup Teams
 
SMM учебник. Как продвигать банк в социальных сетях. Наглядное пособие
SMM учебник. Как продвигать банк в социальных сетях. Наглядное пособиеSMM учебник. Как продвигать банк в социальных сетях. Наглядное пособие
SMM учебник. Как продвигать банк в социальных сетях. Наглядное пособие
 
методы монетизации интернет проектов
методы монетизации интернет проектовметоды монетизации интернет проектов
методы монетизации интернет проектов
 
Belarus internet users discovery
Belarus internet users discoveryBelarus internet users discovery
Belarus internet users discovery
 

Perl6 pod as new documentation format

  • 1. Perl 6 Pod - формат ведения документации Александр Загацкий lvee
  • 2. Кто я http://search.cpan.org/∼zag/ lang/rakudo ( FreeBSD ) книга "Все о Perl 6" Perl 6 Pod - формат ведения документации Александр Загацкий
  • 3. Содержание Основные моменты: Введение в Pod Структура Pod Фитчи Pod Реализации Применение Pod Perl 6 Pod - формат ведения документации Александр Загацкий
  • 4. Synopsis 26 18 октября 1994 В списке анонса perl 5.000 присутвует поддержка POD 9 апреля 2005 Synopsis 26.Автор - Damian Conway. 25 апреля 2007 Вторая редакция 16 августа 2009 S26 - The Next Generation 31 июля 2010 Последняя редакция. :!DRAFT Perl 6 Pod - формат ведения документации Александр Загацкий
  • 5. POD -> Pod POD - Plain Old Documentation Pod в S26: Pod - является эволюцией POD. В сравнении с POD, Perl 6 Pod более однороден, компактен и выразительнее. Pod также характеризуется описательной нотацией разметки, вместо презентационной. Таким образом Pod избавился от слова "старый". Perl 6 Pod - формат ведения документации Александр Загацкий
  • 6. Отличия POD от Pod: Границы блоков документции. POD § ¤ 1 =head1 2 ... 3 4 =cut ¦ ¥ Pod Разграниченные блоки / Delimited blocks Блоки-параграфы / Paragraph blocks Сокращенные блоки / Abbreviated blocks Блоки-деклараторы / Declarator blocks (*) Perl 6 Pod - формат ведения документации Александр Загацкий
  • 7. Параметры блоков Конфигурационные параметры представлены парной нотацией в стиле Perl 6 (S02) =for Image :title(’3 стиля для =table’) = :align(’center’) :!border src/3block_datapng.png Perl 6 Pod - формат ведения документации Александр Загацкий
  • 8. Равнозначность стилевых блоков Типы блоков одинаково представлены во внутренней структуре документа. Perl 6 Pod - формат ведения документации Александр Загацкий
  • 9. Блоки-деклараторы / Declarator blocks Блоки без имен.Ассоциируются с ближайшим декларатором. § ¤ 1 sub fu ( #= This text stored in &fu.WHY 2 Any $bar, #= This text stored in $bar.WHY 3 Mode :$baz #= This text stored in $baz.WHY 4 ) { ... } 5 6 #= This is a special chainsaw 7 my SwissArmy $chainsaw #= (It has a rocket launcher) 8 9 say $chainsaw.WHY; # prints: This is a special chainsaw 10 # (It has a rocket launcher) ¦ ¥ Perl 6 Pod - формат ведения документации Александр Загацкий
  • 10. access to pod/doc text by code Perl 6 Pod - формат ведения документации Александр Загацкий
  • 11. Доступ к документации из кода Программы будущего будут согласовывать свои действия с документацией ! Perl 6 Pod - формат ведения документации Александр Загацкий
  • 12. Особенности Pod =item, =itemN - уровни в списках =table определение таблиц =alias - псевдонимы: именованные, контекстуальные =SYNOPSIS, =NAME ... - семантические блоки =config, :like - предварительное конфигурирование и параметр :like DOC use - расширяемость Perl 6 Pod - формат ведения документации Александр Загацкий
  • 13. Уровни в списках § ¤ 1 =item1 Animal 2 =item2 Vertebrate 3 =item2 Invertebrate 4 5 =item1 Phase 6 =item2 Solid 7 =item2 Chocolate ¦ ¥ Результат * Animal - Vertebrate - Invertebrate * Phase - Solid - Chocolate Perl 6 Pod - формат ведения документации Александр Загацкий
  • 14. Таблицы (=table) Perl 6 Pod - формат ведения документации Александр Загацкий
  • 15. Таблицы (=table) Perl 6 Pod - формат ведения документации Александр Загацкий
  • 16. Именованные псевдонимы =alias PROGNAME Earl Irradiatem Eventually =alias VENDOR 4D Kingdoms =alias TERMSURL L<http://www.4dk.com/eie> The use of A<PROGNAME> is subject to the terms and conditions laid out by A<VENDOR>, as specified at A<TERMSURL>. Perl 6 Pod - формат ведения документации Александр Загацкий
  • 17. Именованные псевдонимы. A<$?FILE> - имя теущего файла A<$?ROUTINE> - подпрограмма, внутри которой размещен блок Pod A<$?CLASS> - текущий класс Программные константы в документации: § ¤ 1 # Actual code... 2 constant $GROWTH_RATE of Num where 0..* = 1.6; 3 =pod 4 =head4 Standard Growth Rate 5 The standard growth rate is assumed 6 to be A<$GROWTH_RATE>. ¦ ¥ Perl 6 Pod - формат ведения документации Александр Загацкий
  • 18. Контекстуальные псевдонимы Включение кода без копирования § ¤ 1 # This is actual code... 2 sub hash_function ($key) 3 =alias HASHCODE 4 { 5 my $hash = 0; 6 for $key.split("") -> $char { 7 $hash = $hash*33 + $char.ord; 8 } 9 return $hash; 10 } 11 =begin pod 12 An ancient (but fast) hashing algorithm is used: 13 =begin code :allow<A> 14 A<HASHCODE> 15 =end code 16 =end pod ¦ ¥ Perl 6 Pod - формат ведения документации Александр Загацкий
  • 19. Семантические блоки =begin SYNOPSIS use Magic::Parser my Magic::Parser $parser .= new(); my $tree = $parser.parse($fh); =end SYNOPSIS Perl 6 Pod - формат ведения документации Александр Загацкий
  • 20. =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 - формат ведения документации Александр Загацкий
  • 21. Расширяемость Режим документации 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 - формат ведения документации Александр Загацкий
  • 22. 1.Реализация на Perl 5 (Domian Conway) http://search.cpan.org/dist/Perl6-Perldoc/ Perl 6 Pod - формат ведения документации Александр Загацкий
  • 23. 2.Реализация на Perl 5: Perl6::Pod http://search.cpan.org/dist/Perl6-Pod/ Perl 6 Pod - формат ведения документации Александр Загацкий
  • 24. 3.Реaлизация на Rakudo (Martin Berends) http://github.com/eric256/perl6-examples/tree/master/bin Perl 6 Pod - формат ведения документации Александр Загацкий
  • 25. 4.Реaлизация на Rakudo (SUPERNOVA) http://github.com/lue/SUPERNOVA Perl 6 Pod - формат ведения документации Александр Загацкий
  • 26. 5.Google Summer of Code "Pod parser for Rakudo" Perl 6 Pod - формат ведения документации Александр Загацкий
  • 27. Презентации: 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.jpg 4 =end Slide ¦ ¥ + возможность ввода формул 1−α 2 kd Γ0 S0 (1 − α)2 = kd α2 ⇒ = α Γ0 S0 Perl 6 Pod - формат ведения документации Александр Загацкий
  • 28. Perl6::Pod::Slide: Списки Перечисляемые списки: =item руководства для конечных пользователей =item Wiki, CMS ... =item книги Результат: Perl 6 Pod - формат ведения документации Александр Загацкий
  • 29. Perl6::Pod::Slide: Списки Перечисляемые списки: =item руководства для конечных пользователей =item Wiki, CMS ... =item книги Результат: руководства для конечных пользователей Wiki, CMS ... книги Perl 6 Pod - формат ведения документации Александр Загацкий
  • 30. Perl6::Pod::Slide: Списки и атрибуты Нумерованные списки и атрибут :pause: =for item :numbered Списки =for item :numbered :pause Таблицы =for item :numbered Уровни заголовков Результат: Perl 6 Pod - формат ведения документации Александр Загацкий
  • 31. Perl6::Pod::Slide: Списки и атрибуты Нумерованные списки и атрибут :pause: =for item :numbered Списки =for item :numbered :pause Таблицы =for item :numbered Уровни заголовков Результат: 1 Списки 2 Таблицы Perl 6 Pod - формат ведения документации Александр Загацкий
  • 32. Perl6::Pod::Slide: Списки и атрибуты Нумерованные списки и атрибут :pause: =for item :numbered Списки =for item :numbered :pause Таблицы =for item :numbered Уровни заголовков Результат: 1 Списки 2 Таблицы 3 Уровни заголовков Perl 6 Pod - формат ведения документации Александр Загацкий
  • 33. Perl6::Pod::Slide: Вставка кода Perl 6 =for code :lang(’Perl’) my @keys = <a b c d e>; my @vals = ^5; my %hash = @keys Z @vals; Результат: § ¤ 1 my @keys = <a b c d e>; 2 my @vals = ^5; 3 my %hash = @keys Z @vals; ¦ ¥ Perl 6 Pod - формат ведения документации Александр Загацкий
  • 34. Perl6::Pod::Slide: Вставка кода JavaScript =begin code :lang(’JavaScript’) var keys = [’a’, ’b’, ’c’]; var values = [1, 2, 3]; var map = {}; //this is a comment for(var i in keys) { map[ keys[i] ] = values[i]; } =end code Результат: § ¤ 1 var keys = [’a’, ’b’, ’c’]; 2 var values = [1, 2, 3]; 3 var map = {}; //this is a comment 4 for(var i in keys) { 5 map[ keys[i] ] = values[i]; 6 } ¦ ¥ Perl 6 Pod - формат ведения документации Александр Загацкий
  • 35. Perl6::Pod::Slide: Создание pdf Экспорт в Tex: pod6slide < tech_docs.pod > tech_docs.tex Конвертация в Pdf: pdflatex tech_docs.tex Perl 6 Pod - формат ведения документации Александр Загацкий
  • 36. zag.ru: Формат для блога Расширяем для поддержки доп функционала. Например: =Image Perl 6 Pod - формат ведения документации Александр Загацкий
  • 37. Формат для книги о Perl 6 Книга "Все о Perl 6". http://zag.ru/perl6-book/ Perl 6 Pod - формат ведения документации Александр Загацкий
  • 38. Глава посвященная Pod Perl 6 Pod - формат ведения документации Александр Загацкий
  • 39. Perl 6 Pod to HTML: http://zag.ru/perl6-pod/ Perl 6 Pod - формат ведения документации Александр Загацкий
  • 40. WriteAt.com - cоздание и публикация книг в сети Perl 6 Pod - формат ведения документации Александр Загацкий
  • 41. Как это работает Perl 6 Pod - формат ведения документации Александр Загацкий
  • 42. Вопросы Вопросы ? S26 Documentation https://github.com/zag/specs/raw/master/S26- documentation.pod Все о Perl 6 http://zag.ru/perl6-book/ home page, mail http://zag.ru, zag(at)cpan.org Perl 6 Pod - формат ведения документации Александр Загацкий