如何使用Pod :: Weaver在Perl POD中添加HTML部分

时间:2013-09-22 06:38:13

标签: perl pod

我将Pod::WeaverDist::Zilla一起使用。它对我有好处。它自动添加POD部分VERSION,AUTHOR,LICENSE,在我的源代码中我可以使用简单的POD语法,我可以编写“= method new”,它将被转换为正确的POD。

现在我想在POD中添加图片。要做到这一点,我需要添加一些HTML。所以我写的是source code

=begin HTML

<p>
<a href="http://upload.bessarabov.ru/bessarabov/031VBX4pHw_ALPcxRTVjflnAWuc.png">
<img src="http://upload.bessarabov.ru/bessarabov/VdagpUXEQdMslOqUyOAzwa-DOaU.png" width="500" height="125" alt="Status board graph sample" />
</a>
</p>

=end HTML

然后我写dzil release并在CPAN上发布module。上传到CPAN后,我发现我的HTML POD已被Pod :: Weaver更改,现在它看起来像:

=for HTML <p>
<p>
<a href="http://upload.bessarabov.ru/bessarabov/031VBX4pHw_ALPcxRTVjflnAWuc.png">
<img src="http://upload.bessarabov.ru/bessarabov/VdagpUXEQdMslOqUyOAzwa-DOaU.png" width="500" height="125" alt="Status board graph sample" />
</a>
</p>

此HTML部分已在POD中移动。我希望它只是在SYNOPSIS之后,但不是在最后一个方法之后。

我仍然想使用Pod :: Weaver,因为它做了很多好事,但我希望将HTML放在POD的确切位置而不是转换。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

经过大量阅读perldoc perlpod并进行测试后,以下事项显而易见:

  1. 根据规范,=begin html可以安全地转换为=for html段。
  2. 但是,这可能仅在段的正文包含按段落分组的段时发生。因此foo\nbar可以翻译,但foo\n\nbar不能翻译。
  3. =begin=for的{​​{3}},当在其正文中看到双\n时,拒绝发出=for,而是恢复发送=begin
  4. 给出数字3这是什么,如果你想强制它发出=begin html,只需用一些额外的\n来加强它就可以了。

    然而,问题仍然存在,无论出于何种原因,给出的有效POD格式似乎都没有按预期呈现。

    无论

    • 甲。 Pod2HTML图层没有正确编码以回复=for(在这种情况下,强制\n可能会有一些额外的=begin帮助。
    • B中。有一个安全级别阻止您使用复杂的HTML(这可能需要图像中的超链接,这可能是XSS安全威胁)

    如果问题是 B ,那么你就不会因为棘手而解决这个问题。

    虽然我向你保证,显示图片 IS 可行,module that is doing the transformation