如何让podlinkcheck不对带片段标识符的URL链接报不存在模块错误
问题根因
podlinkcheck v15版本存在POD链接解析缺陷,处理携带#片段标识符的绝对URL时,会错误截断协议字段,将https:误识别为需要查找的Perl模块名,进而抛出误报。
可行解决方案
- 升级podlinkcheck到v16及以上版本
该解析bug在v16版本已被官方修复,新版解析逻辑完全匹配perlpod规范,可正确识别带片段的http/https等协议的绝对URL,无需修改现有POD代码。使用CPAN升级的命令为:cpan App::PodLinkCheck - 低版本兼容写法
若暂时无法升级工具,可将URL中的#替换为URL编码值%23,示例如下:
这种写法可被v15版本的podlinkcheck正常识别为URL,同时所有标准POD渲染器都会自动将L<RFC 8250|https://datatracker.ietf.org/doc/html/rfc8259%23section-4>%23解码为#,不影响跳转功能。 - 临时过滤误报
若不想修改现有POD内容,运行检查时添加过滤参数即可屏蔽这类误报,不影响其他链接的正常校验:podlinkcheck --ignore 'no module/program/pod "https:"' themodule.pm
内容的提问来源于stack exchange,提问作者Robert
相关产品推荐
相关产品推荐

