3

Dist::ZillaでPod::Weaverを使用します。それは私にとっていくつかの良いことをします。POD セクション VERSION、AUTHOR、LICENSE が自動的に追加され、ソース コードでは単純な POD 構文を使用できます。「=method new」と記述すれば、正しい POD に変換されます。

ここで、POD に画像を追加したいと思いました。そのためには、HTML を追加する必要があります。だから私は自分のソースコードに書いています:

=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

次に、CPANでモジュールdzil releaseを作成してリリースします。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 の正確な場所に配置し、変換しないようにしたいと考えています。

どうすればいいですか?

4

1 に答える 1

1

をよく読んでperldoc perlpodテストした結果、次のことが明らかになりました。

  1. 仕様によると、=begin htmlセグメントは安全にセグメントに変換でき=for htmlます。
  2. ただし、これは、セグメントの本文に段落にグループ化されたセグメントが含まれている場合にのみ発生する可能性があります。だからfoo\nbar翻訳できますが、foo\n\nbarできません。
  3. からへの変換を行っているモジュールは、本体にdouble があると、 の放出を拒否し、代わりに の放出に戻ります。=begin=for\n=for=begin

何番目の 3 かを考えると、強制的に を放出させたい場合は=begin html、いくつかの余分な\n's で味付けするだけでうまくいきます。

ただし、何らかの理由で、与えられた有効な POD 形式のように見えるものが、意図したとおりにレンダリングされないという問題が残ります。

また

  • A. Pod2HTML レイヤーは、適切に応答するようにコード化されていません=for(その場合、いくつか\nの余分な を強制する=beginことが役立つ場合があります。
  • B. 複雑な HTML の使用を妨げているセキュリティ レベルがあります (画像にハイパーリンクが含まれる場合があり、XSS セキュリティの脅威になる可能性があります)。

問題がBの場合、トリッキーであることでそれを回避することはできません。

私はあなたに保証しますが、画像を表示することは可能です、私はそれを自分で行います

于 2013-11-09T22:27:42.790 に答える