release ver.3.1(20010206)
ここでは、「なつみかん」において設定できる項目・および置換指定子について解説します。
「なつみかん」を初めてご利用の方は、先に「スターティングガイド」で動作することを確認してからこちらの設定をすすめて下さい。
nm.phの設定項目については、それぞれの関数ごとの設定にファイルを切り分けて、関数実行の際その設定を呼び出すようにできます。
ただし、「共通設定」、「info.cgi設定」、「nmp.cgi設定」だけはnm.phファイルに記述してください(info.cgi設定、nmp.cgi設定は、これらのCGIを使用しないときは無くても良いです)。
$nm::cf::????の設定値
「共通設定」は、必ずnm.phファイル内に無いといけません。
which gzipのようにすれば、場所がわかると思います。
$gzip = 'gzip.exe';とします。
$nm::cf::info::????の設定値
「info.cgiの設定」は、必ずnm.phファイル内に無いといけません(使用しないときはかまいません)。
$nm::cf::nmp::????の設定値
「nmp.cgiの設定」は、必ずnm.phファイル内に無いといけません(使用しないときはかまいません)。
$nm::cf::det::????の設定値
$nm::cf::conv::????の設定値
$nm::cf::ps::????の設定値
$nm::cf::mg::????の設定値
$nm::cf::html::????の設定値
$nm::cf::ex::????の設定値
リモート情報元サイトの設定は下記のように表記されます。「,」(カンマ)区切りです。情報中の「,」(カンマ)は「\,」のようにエスケープしないと誤動作します。
REMOTE,リモート取得元マーク,リモートサイト名,リモートサイトURL,ローカル保存ファイル名,リモート取得元ファイルURL,誤差/時差(秒)
例:
REMOTE,<A HREF="http://amano.hauN.org/">a</A>,天野アンテナ,http://amano.hauN.org/,r_amano.lirs,http://amano.hauN.org/natsumican.lirs.gz,32400,
更新時刻情報を取得するターゲットサイトの設定は下記のように表記されます。LIRS互換なので「,」(カンマ)区切りです。情報中の「,」(カンマ)は「\,」、「\」(バックスラッシュ・円マーク)は「\\」などのようにエスケープしないと誤動作します。
LIRS,0,0,誤差(秒),0,URL,タイトル,管理者名,0,実際に時刻情報が取れるURL,更新時刻情報を参照できるキー(正規表現使用可),URL後に付ける文字列の形式,その他の情報(必要に応じて),(\r)\n
例:
LIRS,0,0,32400,0,http://aniki.hauN.org/n/,ただよう記憶,ひや,0,,,?%MM%%DD%%HH%%TT%,はう電,
他の「0」の部分は、LIRS1.0との整合性を保つためにあるものです。特に何か記載する必要はありませんが、省くと誤動作します。
「%html」で指定する、書き出す元となる基準のHTMLには、下記の指定子を埋め込むことができます。これは「なつみかん」がhtmlrender::htmlrenderによりHTML出力する際に自動的に置換されます。
注意:「^」(行頭)「(\r|\n)」(\r(CR)か\n(LF)のどちらか)「$」(行末)「*」(前の正規表現の0回以上の繰り返し)はエスケープシーケンスや正規表現です。これら文字はHTML中に書き込まないでください。
nmp.cgiで使われる基準のHTMLには、下記の指定子を埋め込むことができます。これはnmp.cgiがHTML出力する際に自動的に置換されます。
また、実際にnmp.cgiで使われるHTMLは、一度htmlrender::htmlrenderを通したものが用いられるため、「<!--NATSUMICAN_VERSION-->」や「<!--NATSUMICAN_REMOTESERVER-->」、「<!--NATSUMICAN_MODIFIED-->」なども使用可能です。
注意:「^」(行頭)「(\r|\n)」(\r(CR)か\n(LF)のどちらか)「$」(行末)「*」(前の正規表現の0回以上の繰り返し)はエスケープシーケンスや正規表現です。これら文字はHTML中に書き込まないでください。
下記の置換指定子は各設定項目内でよく使われます。これは「なつみかん」ライブラリ「nm::times」の「showdate」関数で標準的に提供されているものです。
「sites.lirs」を用意しない(設定を空にしておく)でおくと、「remote.cfg」で設定されたリモート情報から得た全ての情報の中で、最新のものを選りすぐり、集約して出力します。
これを、同一サーバーの「子アンテナ」に情報を提供するだけの「親アンテナ」として機能させれば、無駄なトラフィックが防げますし、「子アンテナ=俺アンテナ」の製作も楽になります。
「remote.cfg」を用意しない(nm.phでも「''」に設定)でおくと、全ての情報を自力取得します。また、&detect::detectを呼び出すときに「noremote」オプションを指定しても同様です。
他サーバーの場合はネットワークやサーバーに負荷がかかるためあまりおすすめできません(「なつみかん」は自力取得速度は遅いです)が、同一サーバーの日記の情報を取得するために「file://」を使う場合などには有効です。
ただし、「実際に時刻情報が取れるURL」に「file://」で始まるローカルディレクトリを指定すると、自動的に自力取得になりリモート情報は使いません。
「sites.lirs」にサイトのタイトルや管理者名を全く書かないと、リモート情報や対象サイトから抽出して自動的に補完します。
設定が面倒な場合、あるいはDI・LIRS・対象サイトから得た情報に依存したい場合などに有効です。
時差を設定することで、サーバーは日本だけど米国に在住していて更新しているサイトや、逆に日本にいて更新してるけどサーバーは米国で、更新時刻が米国の時刻でしか取れない、等の際に補整することができます。
ただし更新時刻表記内にタイムゾーン表記がない場合は情報が上手く取れないことがあります。
「sites.lirs」に他アンテナの設定ファイル(LIRS)を指定することで、そのサイトと設定ファイルを共有し、ミラーサイトを簡単に作ることができます。
また、設定ファイルは複数指定できるので、「自己のLIRSファイルと他のサイトの設定ファイルを合わせて利用する」などもできます。
「sites.lirs」のオプションに情報を埋め込み「&parseLIRS::parse」でLIRSを分割して、「&htmlrender::htmlrender」で読み込むベースHTML中にそれらを埋め込むことで、カテゴリーごとに区分けされたHTMLを作ることができます。
このとき、埋め込むLIRSごとにソートするかしないか設定することもできます。
「nm.pl」の中で実行する各関数は、1度しか実行してはいけない、というわけではありません。
設定ファイルを細分化したり、細分化したものを複数用意したりして関数を複数回呼び出し、うまく組み合わせることで様々な形態で出力することができるようになります。
更新時刻が表記されているのに取れない、という場合は、まずHTMLソースを見て(ブラウザー上の見た目では判断しない)、表記されている更新時刻直前の文字やタグを、「sites.lirs」の「時刻情報を参照できるキー」にセットしておきます。
それでダメな場合は、正規表現を使って更新時刻表記を表現(「\d+年\d+月\d+日\(.+?\)\s\d+:\d+:\d+」のように)し、それを「sites.lirs」の「時刻情報を参照できるキー」にセットしておきます。
それでもダメな場合は、ひや に相談して下さい(^^;
「sites.lirs」を用意しないときや、サイト名称・著者名称を書き入れなかったとき、リモート情報の方から補完しますが、その補完元を特定することはできません。
たとえば、更新時刻が採れたリモート情報からサイト名称なども採り入れられるかというと、そういうわけではありません。常に一定ですがどのリモート情報から採り入れられるかはわかりません。