UNIX MAGAZINE 2005年9月号

キーフレーズ

prefix ファイル mpfx UNIX MAGAZINE ネットワーク P2P http:// アドレス DNS 2005 サーバー インストール ノード north BitTorrent Linux 場合 mpfxha クライアント 情報 example html システム IPv6 www etc インターフェイス Web 構造体 genhtpg 指定 グリッド () トルク トラフィック com ダウンロード プログラム ドメイン ist ユーザー ハッシュ値 000 CPU 設定 xen 対応 プレフィックス ページ コマンド 処理 struct 必要 利用 設疋 ソフトウェア ディレクトリ 逆引き HTML example.com 記事 サーボ addr lntel ISP 168 SUSE list ホスト名 データ 192 X MAGAZINE Opteron Windows 接続 name 技術 機能 IPv4 mnt インターネット コンテンツ ホスト .com 動作 使用 実行 vif VMware return 構成 パーティション アプリケーション 関数 ピース perseus Affelio 管理

目次

連載 / Pe 日活用のヒント {{if post}} 掲載 : {{post}} { { / if } } 最終更新 : {{update}} く /li> く li > く a href="{{href}}">{{title}}{{if subtitle}}—{{subtitle}}{{/if}} く /a> く br> tmpl—loop cont く u1 > く p>{{name}} く /p> tmpl—loop category ーー > リスト 7 図 15 のファイルの目次の部分 /tmpl—loop ーー > く / ul > /tmpl—loop ーー > 内容ファイル、 Spec ファイル、適用されるテンプレー ト・ファイルのいすれか力開用ページより新しい場合 画像ファイルなどのコピー ップページより新しい場合 トップページのテンプレート・ファイルのいずれかがト すべての記事の内容ファイル、すべての Spec ファイル、 ・トップページ 118 する。デフォルトでは再帰的処理をおこなわない。ただ に、ディレクトリの内容を再帰的に処理することを指定 オプション以外の引数でディレクトリが与えられた際 ・—recurslve ように指定する。 必要かどうかの判断をせずに再生成とコピーをおこなう —force は $HOME/public-html である。 生成先のディレクトリを指定する。デフォルトの生成先 —dstdir DST-DIR プションは以下のとおりである。 に応じて説明してきたが、 こでまとめておこう。まず、オ gethtpg のコマンド行オプションと引数については必要 gethtpg のコマンド行オプションと引数 ピーされない。 (. ) を含まないファイル、つまり拡張子のないファイルもコ ィレクトリはコピーされない。また、ファイル名にドット なお、制作用のディレクトリの直下にある template デ プションが指定された場合はつねにコピーする。 のほうカ噺しい場合にのみコピーする。ただし、 -force オ すでにある場合は、制作用のディレクトリにあるファイル にコピーする。生成先のディレクトリに同名のファイルが ルなどを制作用のディレクトリから生成先のディレクトリ genhtpg は、ディレクトリを処理する際に、画像ファイ し、オプション以外の引数がない場合は再帰的処理をお よっ。 ・—srcdir S 月 C ー〃 / 制作用ディレクトリを指定する。デフォルトは、 Cyg- win では $HOME/My Documents/html-src 、 Win- dows 以外では $HOME/htmIsrc である。指定する パスにシンボリック・リンクが含まれると正しく動作し ない可能性があるので注意が必要である。 —verbose より多くのメッセージを表示するように指定する。 オプション以外の引数としては、ファイルまたはディレ クトリを任意の数だけ指定できる。ただし、指定するのは 制作用ディレクトリの下にあるものでなければならない。 これは、 genhtpg が生成先を制作用ディレクトリ内の相対 位置から判断するためである。 こで注意すべきなのは、引数としてファイルまたはデ ィレクトリを相対パスで指定した場合、 genhtpg はカレン ト・ディレクトリを担に引数を理解する点である。たと えば、カレント・ディレクトリがホーム・ディレクトリの ときに、、 genhtpg short-article. html" と入力すると、 ( 実 際にはない ) ホーム・ディレクトリの short-article. html を指定したことになってしまう。これは、 -srcdir オプシ ョンを指定しているときも同様である。サイト全体ではな く、一部を生成 / 再生成する場合は、制作用ディレクトリへ 移って genhtpg を実行するのカ寉実である。 オプション以外の引数が指定されない場合は、制作用デ ィレクトリと -recursive オプションが指定されたことに なる。つまり、 Web サイト全体が生成されるのである。 ☆ 以上、今回は genhtpg の概要と使い方を説明した。次 回はプログラムの説明をおこなう予定である。 ( いまづ・ひでよモルガン・スタンレー証券 ) UNIX MAGAZINE 2005 . 9

連載 / Pe 日活用のヒント 図 15 トップページのテンプレートのもとになる HTML ファ イル には Switch という名前のファイルがあり、どのペーシの 生成にどのテンプレートを使うかを指定している。 sample/template/Switch の内容を以下に示す。 ATop$ : top ・ tmpl default . tmpl 各行の形式は以下のようになっている。 正規表現 : テンプレート・ファイル名 genhtpg は、ページを生成する際に記事の内容ファイル の相対パスが Switch ファイルの各行の正規表現とマッチ するかを上から順に調べ、最初にマッチしたものに対応す るテンプレート・ファイルを使用する。詳しく書くと以下 のようになる。まず、相対パスの起点は制作用ディレクト リである。マッチングの対象になるのは短い記事では内容 ファイル、長い記事では Spec ファイル、トップページでは 、 Top " である。上記の内容の Switch ファイルでは、トッ プページのみに t 叩 . tmpl を使用し、その他のページの生 成にはすべて default. tmpl を使うことになる。 sample/template ディレクトリには、 genhtpg が参照 するテンプレート・ファイルと Switch ファイルのほか、 以下のファイルが置かれている。 ・テンプレート・ファイルのもとになる HTML ファイル ・ HTML ファイルからテンプレート・ファイルを生成す る htm12tmpI コマンド ・必要に応じて htm12tmpl を実行するための Makefile したがって、テンプレートのもとになるファイルを変更 し、 make コマンドを実行すればテンプレート・ファイル が生成される。 公開用ページを再生成するかどうかの判断 genhtpg は、公開用のページがすでにある場合、再生成 する必要があるかを判断し、必要なときだけ再生成をおこ なう。ただし、 -force オプションカ甘旨定された場合は、つ ねに生成 / 再生成をおこなう。短い記事、長い記事、トップ ページの判断担集はそれぞれ以下のとおりである。 短い記事 内容ファイルまたは適用されるテンプレート・ファイル 力開用ページより新しい場合。 長い記事 ( ) サンプー 1 - 「を朝 F ウェブサイトの名前 を の イ 自分の名前 最更新 : 憮Ⅲな懋ヨ師いⅢレ研 post)l 掲載 : ぉ弋旧レ翻最終更新 : at $ . /dumpcontdb. pl samp1e/Cont . db long—article/ $VARI 'subtitle' = > , 長い記事の副題 , ) = > 1120998209 , post ' = > ' 2005 ー 07 ー 09 ' 'title' = > , 長い記事の題名 , short—article . htm1 $VARI ) = > 1120878000 , post' = > ' 2005 ー 07 ー 08 ) 'title' = > , 短い記事の題名 , genhtpg は、目次内の記事の題名、掲載日、最終更新日 の出力にこのデータを使用している。 Cont. db の内容は 公開用の記事ページが生成される際に作成 / 更新されるの で、トップページの生成は記事ページがすべて生成された あとにおこなわれる必要がある。 トップページのテンプレートのもとになる HTML ファ イルの例を図 15 に、このファイルの目次の部分の HTML ソースをリスト 7 に示す。トップページを生成する際のパ ラメータの値は以下のようになっている。 ・ update すべての記事の最終更新日と T 叩ファイルの最終更新 日のなかでもっとも遅い日付。つまり、 web サイトが 最後に変更された日付である。 ・ category 目次のデータ全体が入っている。リスト 7 は category パラメータの値の書式に従って書かれている。 テンプレートの置き場所など テンプレート・ファイルは、制作用ディレクトリの直下 の template ディレクトリに置かれる。このディレクトリ 117 UNIX MAGAZINE 2005.9

連載 / Pe 日活用のヒント リスト 5 図 11 のファイルの目次の吾吩 tmpl—if toc く p> く b> 目次く / b > く / p > く 01 > tmpl—loop name=toc く li>{{if url}} く a href="{{url}}">* {{chapter-name}} く /a> {{else}} く b>{{chapter-name}} く /b>{{/if}} く /li> /tmpl-loop ーー > く / 01 > リスト 6 Top ファイル 短い記事 short—article . htm1 長い記事 long-article/ 図 14 生成されたトップページ 同新 ・、〕サン 1 ルートガ - 勝Ⅲ aF を 0 ウェブサイトの名前 百分の名前 b サイトの簡単な紹介文をここに書くことになるでノよう。 /tmpl-if トップページへの相対 URLO 短い記事の場合と同様 ・・からディレクトリの深さに 応じて選ばれる。 ・ update 記事の最終更新日。すべての内容ファイルと Spec ファ イルのなかでもっとも更新が遅いものの更新日になる。 記事が最初に掲載された日付。具体的には Spec ファ ・ body 記事の内容。内容ファイルの body タグの中身全体で イルの post パラメータの値である。このパラメータは ある。 Spec ファイルのなかになくてもよい。 ・ toc トップページ 各ページの先頭に表示される目次のデータ。図 11 のフ sample ディレクトリに含まれる TOP ファイルをリス ァイルの目次の部分の HTML ソース ( リスト 5 ) は、 ト 6 に示す。これはトップページ内の目次の定義である。 のパラメータの構造に合わせてある。目次には記事を構 Top ファイルはかならず制作用ディレクトリの直下に置か 成する章の題名カ例挙される。章の題名は、各内容ファ なければならない。このファイルをもとに生成されたトッ イルの body タグ内の最初の要素の中身である。 プページを図 14 に示す。 ・ prev-page 、 next-page T 叩ファイルは以下の形式の羅列であり、種別およ隣己 前ページ、次ページへの相対 URL である。 事の並び頂は Top ファイル内での川印に従う。この場合 図 11 のテンプレートは、値が自動的に設定される上記 のく空白〉は 1 つ以上のスペースまたはタブである。 のパラメータのほかにも、以下のパラメータが Spec ファ 己事の種別の名称 イルで定義されることを想定している。 く空白〉その種別に属する記事 1 の相対 URL く空白〉その種別に属する記事 2 の相対 URL く空白〉・ genhtpg の実行例では、ます長い記事の公開用ページが、 続いて短い記事の公開用ページが生成され、トップページ の生成は最後になる。一一般に、トップページはつねに最後 に生成される。長い記事と短い記事を処理した結果、 sam- ple ディレクトリに Cont. db というファイルカ乍成される が、このファイルには各記事の情報が入っている。パッケ ージに含まれている dumpcontdb. pl を使用すると、以下 のように Cont. db の内容を見ることができる。 最を析 : 2005 ー 01- 短い記事 掲載 : 2 0 フー最終更新 : 2 一 0 ト 長い記事 長い記事の題名ーー長い記車の副組 掲載 : 2CI 0 た最終更新 : 2 0 フ -10 ・ title 記事の題名。具体的には Spec ファイルの title パラメ ータの値である。 ・ subtitle 記事の副題。具体的には Spec ファイルの subtitle パ ラメータの値である。このパラメータは Spec ファイル のなかになくてもよい。サンプルファイルの短い記事に は副題がないが、長い記事に特有のものではない。短い 記事でも副題をもっことができる。 ・ post 116 UN 工 X MAGAZINE 2005 . 9