内容

名称

Pod::Checker - 检查 Pod 文档的语法错误

语法

use Pod::Checker;

$syntax_okay = podchecker($filepath, $outputpath, %options);

my $checker = Pod::Checker->new(%options);
$checker->parse_from_file($filepath, \*STDERR);

选项/参数

$filepath 是要读取的输入 POD,$outputpath 是要写入 POD 语法错误消息的位置。任一参数都可以是表示文件路径的标量,也可以是对打开的文件句柄的引用。如果未指定,则输入文件默认为 \*STDIN,输出文件默认为 \*STDERR

podchecker()

此函数可以采用一个选项哈希

-warnings => val

打开/关闭警告。val 通常为 1 表示打开,但较高的值会触发其他警告。请参见 "Warnings"

-quiet => val

如果 val 为真,则不打印任何错误/警告。

说明

podchecker 将对 Perl5 POD 格式文档执行语法检查。

欢迎好奇/有抱负的用户提出他们希望在 Pod::Checkerpodchecker 中看到的其他功能,并验证这些检查是否与 perlpod 一致。

目前执行以下检查

诊断

错误

警告

这些不一定造成麻烦,但表示风格平庸。

对于格式错误的超链接,有一些警告

请注意,错误/警告的行号可能指的是错误/警告所在的段落的开始行号,而不是错误/警告所在的行号。此错误存在于与格式代码相关的错误/警告中。此问题应得到修复。

返回值

podchecker 返回找到的 POD 语法错误数,如果文件中根本没有找到 POD 命令,则返回 -1。

示例

请参见 "SYNOPSIS"

脚本

此发行版附带的 podchecker 脚本是此模块的一个精简包装器。请使用以下命令查看在线手册

podchecker -help
podchecker -man

接口

在检查时,此模块会收集文档属性,例如超链接的节点(=headX=item)和索引条目(X<>)。POD 翻译器可以在实际开始转换之前使用此功能进行语法检查并获取节点。这在执行时间方面代价较高,但允许进行非常可靠的转换。

从 v1.24 开始,Pod::Checker 模块仅使用 poderror 方法来打印错误和警告。摘要输出(例如“Pod 语法正常”)已从模块中删除,并已包含在 podchecker(脚本)中。这使用户可以完全控制输出行为。podchecker(脚本)的用户可以获得众所周知的行为。

v1.45 继承自 Pod::Simple,而所有以前版本都继承自 Pod::Parser。在使用 Pod::Checker 时,不要使用 Pod::Simple 的接口,除非此页面上某个地方有记录。我再说一遍,不要使用 POD::SIMPLE 的接口。

以下列表记录了对 Pod::Simple 的覆盖,主要是为了让 Pod::Coverage 满意

end_B
end_C
end_Document
end_F
end_I
end_L
end_Para
end_S
end_X
end_fcode
end_for
end_head
end_head1
end_head2
end_head3
end_head4
end_item
end_item_bullet
end_item_number
end_item_text
handle_pod_and_cut
handle_text
handle_whiteline
scream
start_B
start_C
start_Data
start_F
start_I
start_L
start_Para
start_S
start_Verbatim
start_X
start_fcode
start_for
start_head
start_head1
start_head2
start_head3
start_head4
start_item_bullet
start_item_number
start_item_text
start_over
start_over_block
start_over_bullet
start_over_empty
start_over_number
start_over_text
whine
Pod::Checker->new( %options )

返回对一个新的 Pod::Checker 对象的引用,该对象继承自 Pod::Simple,用于稍后调用所需的方法。识别以下选项

-warnings => num 如果 num 为 true,则打印警告。num 的值越高,打印的警告越多。目前只有 1 和 2 两个级别。

-quiet => num 如果 num 为真,则不打印任何错误/警告。当 Pod::Checker 用于将 POD 代码从 POD 格式化程序中转换成纯文本时,此功能非常有用。

$checker->poderror( @args )
$checker->poderror( {%opts}, @args )

用于打印错误和警告的内部方法。如果没有给出选项,则仅打印“@_”。识别以下选项并将其用于形成输出

-msg

@args 之前打印的消息。

-line

发生错误的行号。

-file

发生错误的文件(名称)。默认为正在处理的当前文件的文件名。

-severity

错误级别,应为“WARNING”或“ERROR”。

$checker->num_errors()

设置(如果指定了参数)并检索找到的错误数。

$checker->num_warnings()

设置(如果指定了参数)并检索找到的警告数。

$checker->name()

设置(如果指定了参数)并检索在 =head1 NAME 部分中找到的 POD 的规范名称。

$checker->node()

添加(如果指定了参数)并检索当前 POD 的节点(由 =headX=item 定义)。节点按其出现的顺序返回。它们由纯文本组成,每一块空白都折叠成一个空格。

$checker->idx()

添加(如果指定了参数)并检索当前 POD 的索引条目(由 X<> 定义)。它们由纯文本组成,每一块空白都折叠成一个空格。

$checker->hyperlinks()

检索一个包含指向当前 POD 外部内容的超链接的数组(由 L<> 定义)。

每个都是一个类的实例,具有以下方法

line()

返回遇到链接的大致行号

type()

返回链接的类型;其中之一:"url"(用于类似 http://www.foo 的内容)、"man"(用于手册页)或 "pod"

page()

返回链接到的页面或 URL。

node()

返回链接到的页面中的锚点或节点,如果链接中没有出现锚点或节点,则返回空字符串 ("")。

AUTHOR

请使用 http://rt.cpan.org 报告错误。

Brad Appleton <[email protected]>(初始版本),Marek Rouchal <[email protected]>,Marc Green <[email protected]>(移植到 Pod::Simple),Ricardo Signes <[email protected]>(更多移植到 Pod::Simple),Karl Williamson <[email protected]>(更多移植到 Pod::Simple)

基于 Tom Christiansen <[email protected]> 编写的 Pod::Text::pod2text() 的代码。