Возможно, вы захотите взглянуть на Rinci. Примеры приложений, которые используют это: File::RsyBak, Git::Bunch, App::OrgUtils.
Вот как вы документируете модули. Вы объявляете% SPEC в своем модуле и размещаете внутри него документацию. Каждая функция получает свой ключ. Существуют предопределенные поля. Локализация поддерживается. Форматирование выполняется в Markdown. Пример:
$SPEC{':package'} = {
summary => 'Module to do foo',
"summary.alt.lang.id_ID" => "Modul untuk melakukan foo",
description => <<EOT,
Blah...
...
EOT
links => [...],
};
$SPEC{func1} = {
summary => '...',
description => '...',
args => {
arg1 => {
schema => ...,
summary => ....,
description => ...,
},
},
examples => [...],
links => [...],
...
};
Вместо использования ява или Perl 5 стилей сдачи документации в разделе «комментарии», он использует структуру данных, непосредственно доступной для программ.(Обратите внимание, что Perl 6 также идет по этому пути.) Подумайте об этом, поскольку Python docstring сошел с ума (или структурировал).
Есть инструменты для генерации POD, текста, HTML из метаданных (spec). Помимо документации, метаданные также полезны для других вещей, таких как проверка аргументов, интерфейс командной строки и т. Д.
Раскрытие информации: Я разработчик.
Изменение форматирования в вашем редакторе может помочь с POD? У меня есть разделы POD как в другом цветном тексте, так и в фоновом режиме (белый текст на сером, а затем разноцветный текст на черном), и код очень легко читается для меня. POD также имеет то преимущество, что вы можете набирать 'perldoc' из любого места, чтобы читать вашу документацию (и знать, что это правильная документация из фактической версии кода, запущенного на этой машине). – plusplus
И [Третий] (http://shop.oreilly.com/product/9780596000271.do) и [Четвертый] (http://shop.oreilly.com/product/9780596004927.do) Издания * Программирование Perl * были написаны в ᴘᴏᴅ. Если вы можете написать книгу на 1200 страниц в ᴘᴏᴅ, вы могли бы подумать, что с ней можно будет документировать программу или модуль. – tchrist
@tchrist Не согласно [wikipedia] (http://en.wikipedia.org/wiki/Plain_Old_Documentation) (источник всего, что является истинным и хорошим). По-видимому, простой POD был недостаточно хорош; необходимо расширение [PseudoPod extension] (http://search.cpan.org/~chromatic/Pod-PseudoPod-0.18/lib/Pod/PseudoPod/Tutorial.pod). – John