Pod::ParseLink - 解析 POD 文本中的 L<> 格式代码
use Pod::ParseLink;
my $link = get_link();
my ($text, $inferred, $name, $section, $type) = parselink($link);
此模块仅提供一个函数 parselink(),它获取 L<> 格式代码的文本并对其进行解析。它返回链接的锚文本(如果给出了的话)、可能从名称和章节中推断出的锚文本、名称或 URL、章节(如果有的话)以及链接的类型。类型将是 url
、pod
或 man
之一,分别表示 URL、指向 POD 页面的链接或指向 Unix 手册页面的链接。
解析是根据 perlpodspec 实现的。为了向后兼容,其中没有章节且名称包含空格的链接,或链接的全部内容(给定的锚文本除外)用双引号引起来的链接被解释为指向章节的链接(L</section>)。
推断的锚文本是根据 perlpodspec 实现的
L<name> => L<name|name>
L</section> => L<"section"|/section>
L<name/section> => L<"section" in name|name/section>
名称可能包含嵌入的 E<> 和 Z<> 格式代码,而章节、锚文本和推断的锚文本可能包含任何格式代码。作为解析的一部分,将移除章节周围的任何双引号,以及任何前导或尾随空格。
如果 L<> 转义的文本完全用双引号引起来,则为了向后兼容,它将被解释为指向章节的链接。
不会尝试解析格式代码。这必须在调用 parselink() 之后完成(因为 E<> 格式代码可用于转义字符,否则这些字符对于解析器很重要,并且在解析之前解析它们会导致像
L<verticalE<verbar>barE<sol>slash>
应将其解释为指向 vertical|bar/slash
POD 页面的链接,而不是指向 bar
POD 页面中 slash
部分的链接,锚文本为 vertical
。请注意,不仅锚文本需要扩展格式化代码,链接的目标(用于处理 E<> 和 Z<> 格式化代码)也需要扩展格式化代码,并且根据翻译人员在解析链接时是否希望考虑部分中的标记是否重要,可能需要对部分进行特殊处理。有关更多信息,请参阅 perlpodspec。
Russ Allbery <[email protected]>
版权所有 2001、2008、2009、2014、2018-2019、2022 Russ Allbery <[email protected]>
本程序是免费软件;您可以在与 Perl 自身相同的条款下重新分发和/或修改它。
此模块的当前版本始终可在其网站 https://www.eyrie.org/~eagle/software/podlators/ 上获得。