Template Toolkit
ttree
TTWebサイトを構築するために呼び出される独自のコマンドラインスクリプトが付属しています。
これは、ttree.cfg
私のMacのTTWebサイトプロジェクトでよく使用するファイルです。
# directories
src = ./src
lib = ./lib
lib = ./content
dest = ./html
# pre process these site file
pre_process = site.tt
# copy these files
copy = \.(png|gif|jpg)$
# ignore following
ignore = \b(CVS|RCS)\b
ignore = ^#
ignore = ^\.DS_Store$
ignore = ^._
# other options
verbose
recurse
実行するだけで、ソース(で)または私のライブラリ(で)で変更されたものを更新するだけttree -f ttree.cfg
でサイトが再構築されます。dest
src
lib
よりきめ細かい依存関係については、を参照してくださいTemplate Dependencies
。
更新-そして、これがサブクラス化によって依存関係リストを取得するための私の刺し傷ですTemplate::Provider
:
{
package MyProvider;
use base 'Template::Provider';
# see _dump_cache in Template::Provider
sub _dump_deps {
my $self = shift;
if (my $node = $self->{ HEAD }) {
while ($node) {
my ($prev, $name, $data, $load, $next) = @$node;
say {*STDERR} "$name called from " . $data->{caller}
if exists $data->{caller};
$node = $node->[ 4 ];
}
}
}
}
use Template;
my $provider = MyProvider->new;
my $tt = Template->new({
LOAD_TEMPLATES => $provider,
});
$tt->process( 'root.tt', {} ) or die $tt->error;
$provider->_dump_deps;
上記のコードは、(INCLUDE、INSERT、PROCESS、およびWRAPPERを介して)呼び出され、root.tt
ツリー全体から呼び出されたすべての依存関係を表示します。したがって、これからttree
依存関係ファイルを作成できます。
/ I3az /