作者:小丑阿沁_134 | 来源:互联网 | 2022-12-12 21:19
我写了一个小的示例文件来了解有关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> raiph..:
POD文档外的声明块.
一些似乎值得快速提及的小事情:
最好的做法是将它称为pod(或Pod或Pod6或POD6),而不是POD,以区别于P5的POD,因为它不向后兼容,就像P6不向后兼容P5一样;
语法=begin pod ... =end pod
不声明"pod文档".它声明了一个pod块,它是构成整个pod文档的众多块之一.你可以有几个.提到这个的原因是因为声明块也是pod块.这就是他们被包括在内的原因.
有没有办法在使用时忽略声明器块p6doc
?
您可以通过shell命令级别的过滤器运行输出.
但是看看我的下一个评论是什么可能是更好的方式.
我正在使用 p6doc
p6doc
是一个包装perl6 --doc
.
perl6 --doc
提供与您在问题中显示的完全相同的结果,但具有输出后处理选项(并且不仅限于已安装的模块).
假设您可以切换到使用perl6 --doc
:
perl6 -doc
,如果没有该--doc
选项的参数,则使用默认的pod输出过滤器.
使用perl6 --doc=MyFilter.pm6
您可以通过已安装的自定义过滤器模块运行pod Pod::To::MyFilter.pm6
.
有关可用作示例的过滤器的完整列表,请参阅modules.perl6.org的搜索pod::to
.
您的指针提供了很大的帮助,我已经开始研究[我自己的Pod输出过滤器](https://gitlab.com/tyil/perl6-pod-to-pager)。现在,它所做的不仅仅是我最初想要的过滤。