如何在Dancer模板中制作特定于页面的标题?

时间:2012-08-15 13:58:21

标签: perl template-toolkit dancer

我有一个标准的Perl Dancer应用程序,使用Template :: Toolkit作为渲染引擎,有两个路径:

get '/' => sub {
    template 'index';
};

get '/foo' => sub {
    template 'foo';
};

我的views/templates/main.tt包含以下行:

<title><%= title %></title>

我想将title var的值设为页面'/'上的“我的网站”,以及页面'/ foo'上的“Foo - 我的网站”。

我知道我可以将这些值放在控制器文件中,如下所示:

    template 'index', { title => 'My Site' };

但我想在相应的模板文件views/index.ttviews/foo.tt中指定它们。

我该怎么做?

感谢。

1 个答案:

答案 0 :(得分:2)

这个documentation清楚地解释了如何配置您的应用程序,以便在您的布局中提供模板中定义的变量。

对于标题标记,您可以使用变量template.name节省在每个模板中定义标题的工作量。也许是这样的:

<title>
  <% template.name.match('(\w+).tt').0.ucfirst %> - <% settings.sitename %>
</title>