Не показывать блоки объявлений с помощью p6doc

Я написал небольшой пример файла, чтобы узнать больше о Perl 6 POD, и я использую p6doc сделать небольшую справочную страницу из документа POD. Тем не мение, p6doc также пытается проанализировать блоки объявлений вне документа POD. Это не выглядит особенно хорошо в выводе. Есть ли способ игнорировать блоки объявления при использовании p6doc?

Пример кода, который я использую:

#! /usr/bin/env perl6

use v6.c;

#| Greet people on the command line.
sub MAIN (
    #| A name to greet.
    $names,

    #| Optional. Additional names to greet.
    *@names,
) {
    *
}

=begin pod

=NAME    greeter
=AUTHOR  Patrick Spek
=VERSION 0.0.1

The greeter application greets someone via a terminal. At least 1 name is
required, but multiple names can be given to greet many people in one go.
=end pod

И выходной p6doc является:

sub MAIN(
    $names, # A name to greet.
    *@names, # Optional. Additional names to greet.
)
Greet people on the command line.

class $names
A name to greet.

class *@names
Optional. Additional names to greet.

NAME
greeter

AUTHOR
Patrick Spek

VERSION
0.0.1

The greeter application greets someone via a terminal. At least 1 name is
required, but multiple names can be given to greet many people in one go.

Все до NAME часть это то, что я хочу удалить из p6doc выход.

1 ответ

Решение

блоки декларатора вне документа POD.

Пара небольших вещей, которые все же кажутся заслуживающими быстрого упоминания:

  • Лучше всего называть его pod (или Pod, Pod6 или POD6), а не POD, чтобы отличать его от POD P5, потому что он не имеет обратной совместимости, так же как P6 не имеет обратной совместимости с P5;

  • Синтаксис =begin pod ... =end pod не объявляет "документ стручка". Он объявляет блок pod, который является одним из многих, составляющих весь документ pod. Вы можете иметь несколько из них. И причина упоминания этого в том, что блоки объявлений также являются блоками pod. Вот почему они включены.

Есть ли способ игнорировать блоки объявления при использовании p6doc?

Вы можете запустить вывод через фильтр на уровне команд оболочки.

Но посмотрите мой следующий комментарий о том, что, вероятно, лучше.

я использую p6doc

p6doc это обертка вокруг perl6 --doc,

perl6 --doc обеспечивает точно такой же результат, как вы показали в своем вопросе, но имеет опцию постобработки вывода (и не ограничивается только установленными модулями).

Предполагая, что вы можете переключиться на использование perl6 --doc вместо:

perl6 -docбез аргумента --doc опция, использует фильтр вывода pod по умолчанию.

С помощью perl6 --doc=MyFilter.pm6 вы можете запустить модуль через установленный пользовательский модуль фильтра Pod::To::MyFilter.pm6,

Смотрите в поиске modules.perl6.org дляpod::to для полного списка фильтров, которые вы можете использовать в качестве примеров.

Другие вопросы по тегам