Perl 用テンプレート処理システム (テンプレートエンジン)。 テンプレート処理用のPerl モジュールが提供される。
またテンプレート処理用のコマンドラインツールとして
が同梱されている。
ExtUtils::ModuleMakerをベースに、Template Toolkit によるテンプレートからのPerl モジュールを生成するようにしたモジュール。
希望のものにかなり近い。
# Sample_Corp::MyModule モジュールディストリビューションを作成 makeperlmod --newdist Sample_Corp::MyModule
作成したモジュールパッケージのソースツリーに新しいモジュールを追加する機能もある。
# Sample_Corp::MyModule::SubModule を追加 # 以下の2つを生成 # lib/Sample_Corp/MyModule/SubModule.pm # t/Samle_Corp_MyModule_SubModule.t cd Sample_Corp/MyModule makeperlmod --module Sample_Corp::MyModule::SubModule
設定ファイル、自前のテンプレートをベースにする場合は --newdist する前に以下の作業をしておく。
#設定ファイルを作成 makeperlmod --defaults ~/.makeperlmod.config # <AUTHOR> の各フィールドを設定しておくとスケルトン生成時に利用される。 # テンプレートの生成 makeperlmod -templates ~/.makeperlmod.templates # 設定ファイルの OCMPACT を 1 に変更 # TEMPLATE_DIR を指定 perl -pi -e 's/(COMPACT\s+)0/${1}1/' ~/.makeperlmod.config echo TEMPLATE_DIR $HOME/.makeperlmod.templates >> ~/.makeperlmod.config
PerlのConfiguration関連のモジュールの再チェック。 Template Toolkit で使っている AppConfig が良さそげ。 設定ファイルからの設定と、コマンドラインからのオプション指定を同じ設定オブジェクトに書き込むようになっているのが便利。Getopt::Long で取得したオプションの格納先として使うだけでも便利そうだ。
設定ファイルからの再帰的設定ファイルインクルードや、コマンドラインオプションで指定した設定ファイル中の設定を「その位置」で行う機能が標準であれば嬉しいのだがさすがに無いか。 action あたりを書けば実現は可能そう。
"UTF8" flag に起因する既知の問題のようだ。
Perl 5.8.4 において Template Toolkit 2.14 だと化けるが、2.13 以前 (2.13 と 2.10 で確認)だと大丈夫。
Template::Providerを継承して UTF8 フラグまわりの処理をする自前の Provider を作ってそれを使うという手もあるようだが、今回は 2.13 を使う事で対処。
Template Toolkit で UTF-8 なファイルを INCLUDE すると文字化けする問題だが、ソースを読んでみると Template::Provider に UNICODE という undocumented な初期化パラメータを発見。
Template (か Template::Provider) を new するときに UNICODE => 0 すれば化けなくなった。 "UTF8" flag を立てないで文字列を扱っているスクリプトはこれでOKか?
www.naney.org だとTemplate Toolkit が動かない事がわかってしまったので、やっぱり手元で静的するセンにする。
今までは「XMLによるページ記述 + 自作ツールによる DOM ベースの変換 + XSLT」で生成していたのだが、あまりメンテしていないのでライブラリのバージョンが上がるたびに動かなくなったりいろいろ不便になってきた。 今後は現在いろいろいじっている Template Toolkit ベースにしたい。 まずは付属の ttree を使ったサイト生成にしてみる。
で、いくつかのページをこちらで生成してみることにした。 今までより出力を簡単に修正できるようになった。 ただし以前のXMLベースの時よりは崩れたHTMLを生成する可能性が高くなるので要注意。 GNU m4 でサイトを生成していた時の感じに少し戻った気分。
www.naney.org の静的(+SSI)ページを、Template Toolkit で動的処理するように改良しようかなと思い立つ。 Apache だと、
Action tt2 /cgi-bin/t2h AddHandler tt2 .html
で .html へのリクエストを全てCGI プログラムに渡す(でそのスクリプトがテンプレート処理をして返す)ようにできる(はず)。
で久しぶりに Template Toolkit をサーバにインストール。 … Makefile.PL が通らない。ちょっと修正して通るようにしても今度は make test が通らない。最新の Template Toolkit だと 5.005_03 じゃ駄目か。ドキュメントには 5.005 で OK と書いてあるんだけどな。 前のバージョンは動いたのに。
ということでいきなり頓挫。 あきらめ。
最初は zphoto でいこうと思っていたのだが、
といった点から違うソフトを探してみた。
で JAlbum というのを見つける。Java で書かれているので、Linux でも動く。 スキンがいろいろ選べるのが良い。スキンリポジトリには Flash コンテンツベースの格好良いアルバムを生成するのもある。
スキンは自作できるのだが、プログラムが書ける分マスターするのは結構大変そうだ。
JPEG だとコメントは、画像ファイルのコメント領域に格納するというのがちょっと不満。オリジナルを改変したくないので別にコピーを用意しておく必要がある。
それからGUIアプリケーションなので zphoto のようにコマンドラインからバッチ処理できないのが残念。
それ以外はなかなか良い。
Flash コンテンツベース。スキンリポジトリで一番人気。 日本語のコメントがうまくでなかった。
Flash コンテンツベース。BananAlbum よりすっきりまとまっている。 JAlbum は画像・サムネイルと設定XMLファイルなどの生成をするのだが SimpleViewer のSWF自体は単体で使えるで手作業でもアルバムを作れる。
コメントは後からXMLを直接編集して書き込んでもいいな。
日本語のコメント表示問題無し (Linux 用 Flash Player 7.0.25 では駄目)。
Test::Harness モジュールに、単独で Test::Harness 用のテストファイル(群)を実行できる prove というツールがついているのを発見。
スクリプトのちょっとしたリグレッションテストを書いたりするのにこれはいい。 ダミーのパッケージを作る(autoconfiscate するとか Makefile.PL 作る)とか、自前でスクリプトを書くとかしないで済む。書きなれたスタイルでテストコードが書けるし。
tpage (Template Toolkit) 用テンプレートをいじる時にリグレッションテストをかけられるようにしたかったで、使ってみることにする。
PEG-TJ25を購入し、Palm OS 生活復活。 最初はおもちゃのつもりで買ったのだが、プロジェクトマネジメントなどにシフトした仕事のスケジュール管理などで大活躍。
PDA 市場の明るい話はあまり聞かないが、末長く製品が出て続けて欲しい。
Naney (なにい) です。株式会社MIXIで SNS 事業の部長をしています。
※本サイトの内容は個人的見解であり所属組織とは関係ありません。