标签: template-toolkit

模板工具包,测试嵌套循环中的最后一次迭代

我正在使用模板工具包来形成一个简单的JSON响应(请参阅下面的代码).我需要在响应的所有元素之后加上逗号,除了最后一个.

我相信我需要使用TTs迭代器,但是我没有把它弄好.
使用此代码,仍然会在最后一个元素的末尾打印逗号.

问题在于包含的部分

[% UNLESS outer.last && loop.last %],[% END %]
Run Code Online (Sandbox Code Playgroud)

除非外循环和内循环在最后一次迭代中,否则应该添加逗号.

任何有关我出错的帮助都非常感谢.

{ "success": true, "filesdata": [
[%~ USE outer = iterator(objects); FOREACH object IN outer;
    FOREACH rep IN object.reps;
        IF rep.rep == reptype %]
{ "id":"[% object.id | xml %]", "url":"[% rep.src | xml %]", "story":"[% object.story | xml %]" }[% UNLESS outer.last && loop.last %],[% END %]
        [%~ END;
    END;
END ~%]
] }
Run Code Online (Sandbox Code Playgroud)

perl template-toolkit

6
推荐指数
2
解决办法
1018
查看次数

在没有插件的情况下调用Template Toolkit中的子外部和模块?

我试图在Template Toolkit .tt文件中调用外部Perl模块.我想要使​​用的模块是Util,我想打电话Util::prettify_date.我能够使用Template Toolkit的插件接口包含这个模块:我设置了load,new和error函数(如下所述:http://template-toolkit.org/docs/modules/Template/Plugin.html),并使用它包括它[% USE Util %].

这工作正常,但我想知道是否有一种方法可以USE在Template Toolkit中使用Perl模块而无需插件 - 如果它们.制作插件的主要问题是我必须使用Util面向对象的所有函数(即接受$ self作为第一个参数),这实际上没有意义.

perl template-toolkit

5
推荐指数
2
解决办法
2265
查看次数

在网站上解析并显示MIME多部分电子邮件

我有一个原始电子邮件,(MIME多部分),我想在网站上显示这个(例如在iframe中,带有HTML部分和纯文本部分的标签等).是否有任何CPAN模块或Template :: Toolkit插件可用于帮助我实现这一目标?

目前,看起来我必须使用Email :: MIME解析消息,然后迭代所有部分,并为所有不同的mime类型编写处理程序.

这是一个很长的镜头,但我想知道是否有人已经完成了这一切?如果我自己尝试,那么编写处理程序将是一个漫长且容易出错的过程.

谢谢你的帮助.

email perl mime cpan template-toolkit

5
推荐指数
2
解决办法
8152
查看次数

我可以在模板中设置模板继承吗?(模板工具包)

我必须根据用户所处的状态显示不同的医疗表格.还有许多州共享的默认表格.这些医疗表格都是用Template Toolkit编写的,它们包含在较大的模板中.状态可作为标准化形式的变量使用.

我需要选择特定于状态的模板(如果存在),否则回退到默认模板.我最好怎么做呢?

INCLUDE_PATH 已被用于控制网站样式之间的切换.

perl template-toolkit

5
推荐指数
1
解决办法
399
查看次数

Perl舞者和模板工具包:在模板中包含模板

我试图在模板中包含一个模板,如下所示:

parent.tt

  <div class="row-fluid">
    <div class="span3">
    [% INCLUDE my_sidebar]
    </div><!--/span-->
   </div>
Run Code Online (Sandbox Code Playgroud)

my_sidebar.tt与parent.tt存在于同一文件夹中(/ myapp/views)

我对config.yml进行了以下更改:使用ABSOLUTE

template: "template_toolkit"
engines:
   template_toolkit:
     encoding:  'utf8'
     start_tag: '[%'
     end_tag:   '%]'
     ABSOLUTE : 1
Run Code Online (Sandbox Code Playgroud)

parent.tt包含:

[% INCLUDE /myapps/views/my_sidebar %]
Run Code Online (Sandbox Code Playgroud)

有了RELATIVE

template: "template_toolkit"
engines:
   template_toolkit:
     encoding:  'utf8'
     start_tag: '[%'
     end_tag:   '%]'
     RELATIVE : 1
     INCLUDE_PATH: /myapps/views
Run Code Online (Sandbox Code Playgroud)

parent.tt包含:

[% INCLUDE my_sidebar %]
Run Code Online (Sandbox Code Playgroud)

但在这两种情况下,我都会收到以下错误:

core - template - file error - my_sidebar: not found at /.../csm/64-bit/cpan/5.16.1-2012.09/lib/Dancer/Template/Abstract.pm line 90.
Run Code Online (Sandbox Code Playgroud)

perl template-toolkit dancer

5
推荐指数
1
解决办法
1163
查看次数

Catalyst Template :: Toolkit渲染输出

我正在使用CatalystTemplate :: Toolkit作为我的模板系统.我希望能够渲染模板的特定部分,然后将它们返回给我,这样我就可以将它们存储在变量中.Template :: Toolkit 文档提到您可以这样做:

my $content = $c->forward($c->view('HTML'), "render", $template_name);
Run Code Online (Sandbox Code Playgroud)

但是,每当我这样做,我只是得到这个错误:

file error - : not found
Run Code Online (Sandbox Code Playgroud)

有谁知道我做错了什么?谢谢!

perl render catalyst template-toolkit output

5
推荐指数
1
解决办法
685
查看次数

5
推荐指数
1
解决办法
560
查看次数

尝试创建带有模板值的字符串并单元测试模板是否正确处理

我正在尝试创建一个测试文件,使用模板工具包将模板值输入到字符串中,但我不知道要包含哪些检查/测试以确保模板工具包正确处理字符串。这是我的代码:

#!/usr/bin/env perl

use lib ('./t/lib/');

use strict;
use warnings;

use Template;

use Test::More tests => 1;



# options/configuration for template
 my $config = {
     #PRE_PROCESS => 1, # means the templates processed can use the same global vars defined earlier
     #INTERPOLATE => 1,
     #EVAL_PERL => 1,
     RELATIVE => 1,
     OUTPUT_PATH => './out',

 };

my $template = Template->new($config);

# input string
my $text = "This is string number [%num%] ."; 

# template placeholder variables
my $vars = {
     num => …
Run Code Online (Sandbox Code Playgroud)

perl unit-testing template-toolkit

5
推荐指数
1
解决办法
238
查看次数

5
推荐指数
1
解决办法
184
查看次数

模板工具包:如何​​从宏块返回哈希

是否可以编写向调用者返回哈希值的宏或块?

我试图模块化一些模板代码:

[%- 
MACRO MakeSomeThing(something) BLOCK;
  s = {  a => 'a',
         b => something,
         c => 'c'
      };
  # RETURN s;  # not allowed
  # s;         # just returns the hash ref string (HASH(0x32e42e4))
END;


  newOb =  MakeSomeThing('foo');
  dumper.dump({'newOb' => newOb});
%]
Run Code Online (Sandbox Code Playgroud)

有没有办法实现类似的模式?

perl template-toolkit

5
推荐指数
1
解决办法
182
查看次数

标签 统计

perl ×10

template-toolkit ×10

dancer ×2

catalyst ×1

cpan ×1

email ×1

mime ×1

output ×1

render ×1

unit-testing ×1