4

HTMLにエクスポートされるperlpodドキュメントを作成するときに、結果のHTMLファイルのタイトルをPODディレクティブに埋め込むことはできますか?

コマンドを使用して複数のPODテキストファイルをHTMLに変換できるようにしたいのですが、コマンドラインでパラメーターを指定pod2htmlする必要はありません。--title="My Title"

たとえば、perlpod形式のテキストファイルは次のとおりです。

=pod

=head1 This is a heading

This is some text. I'd like to set the title of this document in the resulting HTML file.

=cut

HTMLに変換すると、pod2htmlはタイトルがないことを警告します。

$ pod2html test.txt > test.html
/usr/bin/pod2html: no title for test.txt

結果のHTMLファイルでは、タイトルはファイル名(test.txt)に設定されます。

<?xml version="1.0" ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>test.txt</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rev="made" href="mailto:root@localhost" />
</head>

<body style="background-color: white">

<p><a name="__index__"></a></p>
<!-- INDEX BEGIN -->

<ul>

        <li><a href="#this_is_a_heading_">This is a heading.</a></li>
</ul>
<!-- INDEX END -->

<hr />
<p>
</p>
<hr />
<h1><a name="this_is_a_heading_">This is a heading.</a></h1>
<p>This is some text. I'd like to set the title of this document.</p>

</body>

</html>

おそらく次のようなディレクティブを使用して、perpodドキュメントでタイトルを指定する方法を見つけたいと思います。

=title This is my custom title

Perlのドキュメントでは、ドキュメントのタイトルが適切に設定されていることがわかります。これはすべて、ポッドドキュメント自体にドキュメントタイトルを含めずに実行されますか?

4

2 に答える 2

5

ポッドドキュメントには、ドキュメントのタイトルを制御するものは何もありません。これは、ポッドドキュメントを必要な形式に変換するプログラムまでです。ドキュメントの生成に使用するほとんどのpod2docPod::Textプログラムには、またはのようなモジュールがありますPod::Html。これらは、変換におけるうなり声の仕事のほとんどを行います。

pod2htmlパラメータを取り--titleます。ただし、必要なのは、pod2htmlで指定しなくても実行できることです。あなたができることは、pod2htmlのあなた自身のバージョンを転がすことです。スクリプト自体を見てみましょうpod2html。必要なものを取得するために何ができるかを理解できるかもしれません。

すべてのPODドキュメントを削除すると、次のように表示されます。

use Pod::Html
pod2html @ARGV

それがプログラム全体です。

pod2steveやりたいことをするプログラムを作れるようです。最後のパラメーター(タイトルを設定したいものだと思います)を取得し、それをpod2htmlサブルーチンに渡すだけです。あなたpod2steveはこのように見えるでしょう:

use strict;
use warnings;

use Pod::Html
my $program_name = $ARGV[$#ARGV];
pod2html --title=$program_name @ARGV

それはうまくいくはずです。

于 2013-01-31T20:52:21.510 に答える
4

いいえ。

PODは主にPerlモジュールのドキュメントを作成するために存在します²。したがって、多くの優れた機能はありません。また、PODの主な出力媒体は端末であり、概念的にはタイトルなどは存在しません³。結局のところ、これは単なるドキュメントです。
    1.驚くべきことに多くのPerlの本がPODで書かれています。
    2. POD文書の場所は、本文で説明されているものと一致します。
    3.ps名前/$0変数は近くにありますが、ここでは役に立ちません。

これも技術的な問題です。usespod2htmlPod::Html、コマンドラインを解析しPod::Simple::XHTML、実際の解析を実行したり妨害したりすることなく、それ自体をラップアラウンドします。ただし、すでにヘッダーとフッターが提供されており、出力される可能性のあるデフォルトのヘッダーを適切にオーバーライドします。

問題を解決する方法には、2つの興味深いオプションがあります。

  1. 最初の値をに入れるポストプロセッサを記述しh1ますtitle。これは、XPathをサポートするパーサーでは10行未満である必要があります。次に、これらを結び付け、の代わりに呼び出すことができる小さなスクリプトを記述しますpod2html

  2. 既存の豊富なPODパーサー(およびソースコード)を使用して、PODジェネレーターから独自のHTMLを作成します。実際に行っているのが小さなフォークだけの場合は、元のモジュールに変更を加えることを試みることができます。

于 2013-01-31T20:54:00.293 に答える