Template Toolkit
确实带有自己的命令行脚本ttree
,用于构建 TT 网站 ala make。
这是ttree.cfg
我在 Mac 上的 TT 网站项目中经常使用的文件:
# 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
仅更新源(in src
)或我的库(in 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/