Ведение технической документации в perl6 pod · Форматы...

29
Ведение технической документации в Perl6 Pod Загацкий Алексндр 2 июля 2010

Upload: others

Post on 13-Jul-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ведение технической документации в Perl6 Pod · Форматы документации для perl5 и perl6: POD (Plain Old Documentation) имеет

Ведение технической документации в Perl6 Pod

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

2 июля 2010

Page 2: Ведение технической документации в Perl6 Pod · Форматы документации для perl5 и perl6: POD (Plain Old Documentation) имеет

История документации

Flexowriter - первый иструмент документирования кода

Ведение технической документации в Perl6 Pod Загацкий Алексндр

Page 3: Ведение технической документации в Perl6 Pod · Форматы документации для perl5 и perl6: POD (Plain Old Documentation) имеет

Как средство отладки кода

Инженеры осуществляют ввод данных в PDP-1 с перфолентыотпечатанной на Flexowriter.

Ведение технической документации в Perl6 Pod Загацкий Алексндр

Page 4: Ведение технической документации в Perl6 Pod · Форматы документации для perl5 и perl6: POD (Plain Old Documentation) имеет

Документирование в разработке

Форматы ведения документации

Только

программный

код

Только

программный

код

Ведение технической документации в Perl6 Pod Загацкий Алексндр

Page 5: Ведение технической документации в Perl6 Pod · Форматы документации для perl5 и perl6: POD (Plain Old Documentation) имеет

Javadoc

Специальный синтаксис, встроенный в комментарии� �1 /**2 * Validates a chess move.3 *4 * Use {@link #doMove(int, int, int, int)} to move a

piece.5 *6 * @param theFromFile file from which a piece is being

moved7 * @param theFromRank rank from which a piece is being

moved8 * @param theToFile file to which a piece is being moved9 * @param theToRank rank to which a piece is being moved

10 * @return true if the move is valid, otherwisefalse

11 */12 boolean isValidMove(int theFromFile, int theFromRank,

int theToFile,13 int theToRank)14 {15 ...16 }� �

Ведение технической документации в Perl6 Pod Загацкий Алексндр

Page 6: Ведение технической документации в Perl6 Pod · Форматы документации для perl5 и perl6: POD (Plain Old Documentation) имеет

Doxygen

Комментарии связаны с грамматикой� �1 class PyClass:2 """Documentation␣for␣a␣class.34 ␣␣␣More␣details.5 ␣␣␣"""67 def __init__(self):8 """The␣constructor."""9 self._memVar = 0;� �

Ведение технической документации в Perl6 Pod Загацкий Алексндр

Page 7: Ведение технической документации в Perl6 Pod · Форматы документации для perl5 и perl6: POD (Plain Old Documentation) имеет

Генераторы документации

Отличителные черты:

Находятся в непосредственной близости к кодуОграничены документированием программного API

Ведение технической документации в Perl6 Pod Загацкий Алексндр

Page 8: Ведение технической документации в Perl6 Pod · Форматы документации для perl5 и perl6: POD (Plain Old Documentation) имеет

Легковесные языки разметки

Markdown, reStructuredText, txt2tags, POD ...руководства для конечных пользователейWiki, CMS ...Элементы сруктуры документа (списки, таблицы, уровнизаголовков)

Пример вставки изображения в ReStructuredText:� �1 image:: images/biohazard.png2 :height: 1003 :width: 2004 :scale: 505 :alt: alternate text� �

Определние таблицы в txt2tags� �1 || heading 1 | heading 2 | heading 3 |2 | cell 1.1 | cell 1.2 | cell 1.3 |3 | cell 2.1 | cell 2.2 | cell 2.3 |� �

Ведение технической документации в Perl6 Pod Загацкий Алексндр

Page 9: Ведение технической документации в Perl6 Pod · Форматы документации для perl5 и perl6: POD (Plain Old Documentation) имеет

Форматы разметки

Figure: Сравнительная таблица в wikipedia

Ведение технической документации в Perl6 Pod Загацкий Алексндр

Page 10: Ведение технической документации в Perl6 Pod · Форматы документации для perl5 и perl6: POD (Plain Old Documentation) имеет

Поддержка языком программирования

Форматы документации для perl5 и perl6:POD (Plain Old Documentation) имеет встроенную поддержку в

perl5Perldoc Pod встроен в perl6 и обладает расширяемостью

Ведение технической документации в Perl6 Pod Загацкий Алексндр

Page 11: Ведение технической документации в Perl6 Pod · Форматы документации для perl5 и perl6: POD (Plain Old Documentation) имеет

История Pod

18 октября 1994 В списке анонса perl 5.000 присутвуетподдержка POD:

* The documentation is much more extensive and perldocalong with pod is introduced.

9 апреля 2005 S26: cпецификация формата Pod для perl6(Domian Conway)

25 апреля 2007 Последняя модификация16 августа 2009 S26 - The Next Generation. Список дополнений.

paraВедение технической документации в Perl6 Pod Загацкий Алексндр

Page 12: Ведение технической документации в Perl6 Pod · Форматы документации для perl5 и perl6: POD (Plain Old Documentation) имеет

Отличия POD от Pod: Терминология

POD означает Perl Old Documentation

Спецификация s26 представляет новый формат следующимобразом:

Perldoc - легкий в использовании язык разметки спростой, однозначной моделью документа, которыйподдерживает множество синтаксических диалектов.

Стандартный диалект Perldoc - "Pod".

Pod - диалект языка разметки Perldoc

Ведение технической документации в Perl6 Pod Загацкий Алексндр

Page 13: Ведение технической документации в Perl6 Pod · Форматы документации для perl5 и perl6: POD (Plain Old Documentation) имеет

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

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

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

Ведение технической документации в Perl6 Pod Загацкий Алексндр

Page 14: Ведение технической документации в Perl6 Pod · Форматы документации для perl5 и perl6: POD (Plain Old Documentation) имеет

Равнозначность стилевых блоков

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

=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

Ведение технической документации в Perl6 Pod Загацкий Алексндр

Page 15: Ведение технической документации в Perl6 Pod · Форматы документации для perl5 и perl6: POD (Plain Old Documentation) имеет

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

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

Ведение технической документации в Perl6 Pod Загацкий Алексндр

Page 16: Ведение технической документации в Perl6 Pod · Форматы документации для perl5 и perl6: POD (Plain Old Documentation) имеет

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

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

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

Ведение технической документации в Perl6 Pod Загацкий Алексндр

Page 17: Ведение технической документации в Perl6 Pod · Форматы документации для perl5 и perl6: POD (Plain Old Documentation) имеет

=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

Ведение технической документации в Perl6 Pod Загацкий Алексндр

Page 18: Ведение технической документации в Perl6 Pod · Форматы документации для perl5 и perl6: POD (Plain Old Documentation) имеет

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

� �1 =item1 Animal2 =item2 Vertebrate3 =item2 Invertebrate45 =item1 Phase6 =item2 Solid7 =item2 Chocolate� �

Результат

* Animal- Vertebrate- Invertebrate

* Phase- Solid- Chocolate

Ведение технической документации в Perl6 Pod Загацкий Алексндр

Page 19: Ведение технической документации в Perl6 Pod · Форматы документации для perl5 и perl6: POD (Plain Old Documentation) имеет

Таблицы (=table)

Ведение технической документации в Perl6 Pod Загацкий Алексндр

Page 20: Ведение технической документации в Perl6 Pod · Форматы документации для perl5 и perl6: POD (Plain Old Documentation) имеет

Таблицы (=table)

Ведение технической документации в Perl6 Pod Загацкий Алексндр

Page 21: Ведение технической документации в Perl6 Pod · Форматы документации для perl5 и perl6: POD (Plain Old Documentation) имеет

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

Ведение технической документации в Perl6 Pod Загацкий Алексндр

Page 22: Ведение технической документации в Perl6 Pod · Форматы документации для perl5 и perl6: POD (Plain Old Documentation) имеет

Директива =use

=use - определение именованных блоков

=use MODULE_NAME OPTIONAL CONFIG DATA= OPTIONAL EXTRA CONFIG DATA

Идентификаторы, целиком состоящие из символов нижнегоили верхнего регистра, зарезервированы.

Ведение технической документации в Perl6 Pod Загацкий Алексндр

Page 23: Ведение технической документации в Perl6 Pod · Форматы документации для perl5 и perl6: POD (Plain Old Documentation) имеет

Определение именованных блоков

Опишем блок Image:

=use Perldoc::Plugin::Image= :Jpeg prefix=>’http://dev.perl.org’

Использование:

=Image http://example.com/perl_logo_32x104.png

Ведение технической документации в Perl6 Pod Загацкий Алексндр

Page 24: Ведение технической документации в Perl6 Pod · Форматы документации для perl5 и perl6: POD (Plain Old Documentation) имеет

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

http://search.cpan.org/dist/Perl6-Perldoc/ (text и xhtml)

Ведение технической документации в Perl6 Pod Загацкий Алексндр

Page 25: Ведение технической документации в Perl6 Pod · Форматы документации для perl5 и perl6: POD (Plain Old Documentation) имеет

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

http://github.com/eric256/perl6-examples/tree/master/binFormat codes about 50% in text, man, xhtml, pod5 and pod6emitters. =table and =use not even started.

Ведение технической документации в Perl6 Pod Загацкий Алексндр

Page 26: Ведение технической документации в Perl6 Pod · Форматы документации для perl5 и perl6: POD (Plain Old Documentation) имеет

3. Perl6::Pod

http://search.cpan.org/dist/Perl6-Pod/Предстоит для реализации:

вложенность списковвключение содержимого другого документазамещаемые данные40% кодов форматирования

В наличии:

расширяемость: создание форматтеров, именованныхблоков, собственных кодов форматированиятаблицы: частичноосновная грамматика: уровни заголовков, основныетипы списковатрибуты форматирования: :like, :format, :allowxml, xhtml, docbook: pod6docbook, pod6xhtml, pod6xml

Ведение технической документации в Perl6 Pod Загацкий Алексндр

Page 27: Ведение технической документации в Perl6 Pod · Форматы документации для perl5 и perl6: POD (Plain Old Documentation) имеет

3. Perl6::Pod

http://search.cpan.org/dist/Perl6-Pod/Предстоит для реализации:

вложенность списковвключение содержимого другого документазамещаемые данные40% кодов форматирования

В наличии:

расширяемость: создание форматтеров, именованныхблоков, собственных кодов форматированиятаблицы: частичноосновная грамматика: уровни заголовков, основныетипы списковатрибуты форматирования: :like, :format, :allowxml, xhtml, docbook: pod6docbook, pod6xhtml, pod6xml

Ведение технической документации в Perl6 Pod Загацкий Алексндр

Page 28: Ведение технической документации в Perl6 Pod · Форматы документации для perl5 и perl6: POD (Plain Old Documentation) имеет

Библиотека Perl6::Pod::Lib

http://search.cpan.org/dist/Perl6-Pod-Lib/Perl6::Pod::Lib::Image вставка изображенияPerl6::Pod::Lib::Include включение других документов

Подключение библиотеки:

=begin pod=use Perl6::Pod::Lib=for Image :title(’Test image title’)

img/image.png=begin Includefile:../intro.pod( :!develop )file:../api.pod(:public,:!develop)=end Include=end pod

Экспорт в DocBook:

pod6docbook < file.pod > file.xmlВедение технической документации в Perl6 Pod Загацкий Алексндр

Page 29: Ведение технической документации в Perl6 Pod · Форматы документации для perl5 и perl6: POD (Plain Old Documentation) имеет

Вопросы ?

S26 Documentation http://perlcabal.org/syn/S26.htmlPerl6-Pod http://search.cpan.org/dist/Perl6-Pod/home page, mail http://zag.ru, zag(at)cpan.org

Ведение технической документации в Perl6 Pod Загацкий Алексндр