标签: template-engine

DotLiquid - 字典<string,string> 作为参数

假设我有以下模板:

嗨{{名字}}!欢迎回到{{博客}}。上次登录日期:{{ date }}。

允许用户输入模板和占位符/变量,因此我无法知道占位符会是什么样子。

我正在考虑创建这样的东西:

public string Render(string text, Dictionary<string,string> placeholders)
{
    Template template = Template.Parse(text);
    return template.Render(Hash.FromSomething(placeholders));
}
Run Code Online (Sandbox Code Playgroud)

有一种名为 FromDictionary 的方法,它接受字典,但我不太明白它是如何工作的。另一种选择是 FromAnonymousObject,但我不知道如何将 Dictionary 转换为匿名对象以适应目的。

任何想法将不胜感激!

.net c# dictionary template-engine dotliquid

3
推荐指数
1
解决办法
2340
查看次数

Jinja2 用于文字模板

我想使用 jinja2 进行单词模板,就像这篇短文中提到的那样。我面临的问题如下,如果我放入{{title}}我的 word 文件,生成的 xml 可能如下所示:

<w:r><w:t>{{</w:t></w:r><w:proofErr w:type="gramStart"/><w:r><w:t>title</w:t></w:r><w:proofErr w:type="gramEnd"/><w:r><w:t>}}</w:t></w:r></w:p>
Run Code Online (Sandbox Code Playgroud)

所以jinja不可能相应地替换它。是否有可能防止单词{{title}}在单独的文本元素中拆分?(如果我从文本编辑器复制它工作正常)

python template-engine docx jinja2

3
推荐指数
2
解决办法
6629
查看次数

完成 JADE 中的 if-else 条件块

我想在Jadeif else中完成一个条件块,因此可以在 if/else 之后添加嵌套代码。

- var name = 'you';
- if(name != '')
    p Hello #{name}
- else
    p Hello world
| !!!
Run Code Online (Sandbox Code Playgroud)

我想要使​​用空名称 var

<p>Hello you!!!</p>
Run Code Online (Sandbox Code Playgroud)

但我得到

<p>Hello world</p>
!!!
Run Code Online (Sandbox Code Playgroud)

name = you我想要得到

<p>Hello world!!!</p>
Run Code Online (Sandbox Code Playgroud)

我必须更改什么才能将更多文本/标签放入 p 元素中?我的意思是嵌套到 if/else 块中,并且对于这两种情况都是通用的。重点是不要在代码中重复!!!

像 try/catch 这样的 finally 块会很好,但它不存在。

html javascript template-engine node.js pug

3
推荐指数
1
解决办法
5553
查看次数

Zend Expressive:如何使用 Zend View 更改布局

layout使用Zend View时, Zend Expressive 默认为模板。我注意到PhpRendereraddTemplate($template)类中的函数,但是在哪里以及如何添加替代模板?layout

在操作的中间件工厂中,在操作本身中,还是在其他地方?

template-engine zend-view mezzio

3
推荐指数
1
解决办法
2120
查看次数

使用带有 javascript ES6 模板字符串的 freemarker

Freemaker 模板使用以下语法呈现变量:${name}

Javascript ES6 模板字符串具有类似的语法 ${name}

问题是当freemarker 在服务器上运行时,它会尝试渲染javascript 代码中的模板,因为Freemarker 认为它遇到了一个变量(实际上它是一个应该在客户端渲染的javascript 模板)。关于如何处理的建议?

一种方法是将所有 JS 包装在一个 freemarker 注释中(因此它永远不会被评估),

或者将 JS 代码放在一个单独的文件中(没有内联在 html 页面中),这样它就不会被 freemarker 评估。

javascript template-engine freemarker

3
推荐指数
2
解决办法
1261
查看次数

使用mako格式化

谁知道如何用Mako格式化字符串的长度?

相当于打印"%20s%10s"%("字符串1","字符串2")

python template-engine mako

2
推荐指数
1
解决办法
2037
查看次数

邮件中未定义的方法"to_liquid",但不在页面中

我得到了Liquid error: undefined method 'to_liquid' for #<Email:0x007f9ca1a62d28>我的错误Email发送使用视图内的液体模板的电子邮件时对象.但是,当我在浏览器中自己渲染视图时,它工作得很好!

这是我的观点:

= raw @template.render('email' => @email, 'organization' => @organization)

%p= sanitize("<a href='{{ unsubscribe_url }}''>Click here to unsubscribe</a>")

%p{style:'text-align:center;'}
  Sent with
  = link_to 'Vocalem', 'http://vocalem.com'
Run Code Online (Sandbox Code Playgroud)

我的邮件的相关部分:

class BulkMailer < ActionMailer::Base
  def bulk_email(recipients, email, organization)
    ...
    @organization = organization
    @email = email
    @template = Liquid::Template.parse(organization.current_email_template.body)
Run Code Online (Sandbox Code Playgroud)

相关型号代码:

liquid_methods :subject, :body, :id
Run Code Online (Sandbox Code Playgroud)

最后但并非最不重要的是,Liquid的一个例子给出了错误(但在普通视图中正常工作!):

{{email.body}}
Run Code Online (Sandbox Code Playgroud)

奇怪的是,{{organization.display_name}}不会抛出错误,但在电子邮件中只是完全空白(尽管在普通视图中再次正常工作).

任何线索可能会发生在这里?

template-engine ruby-on-rails liquid ruby-on-rails-3

2
推荐指数
1
解决办法
2063
查看次数

如何在Laravel 4.1中的刀片模板中选择下拉列表?

我试图显示所有国家的下降.在编辑页面中,我想将国家/地区设为选中状态.说Indiaselected=selected.

<div class="large-3 columns">
    {{ Form::label('country') }}
</div>
<div class="large-4 columns">
    @include("common.country")
</div>
Run Code Online (Sandbox Code Playgroud)

我该怎么做 是否可以传递数组中的值@include("common.country")

php template-engine blade laravel-4

2
推荐指数
1
解决办法
6960
查看次数

Freemarker中的串联字符串

如何在freemarker中连接字符串?

这行不通。

    <#function foo input>
<#local str="Hello ">
${str} = ${str} + ${" world"}

<#return str>
</#function>

${foo("a")}
Run Code Online (Sandbox Code Playgroud)

这是在线评估者:http :
//freemarker-online.kenshoo.com/

编辑:为了清楚起见,我需要将其与变量一起使用,以便能够编写类似这样的内容。


public String sayHello() {return "Hello";}
public String sayWorld() {return "world"};
public String sayPeople() {return "people";}

public void main() { 
 String str = "";
 str += sayHello();
 str += "";
 str += sayWorld();
 str += "";
 str += sayPeople();

 return str;
}
Run Code Online (Sandbox Code Playgroud)

template-engine freemarker string-concatenation

2
推荐指数
1
解决办法
6459
查看次数

在Dancer2的config.yml中配置Template :: Toolkit(修剪空白)

我正在使用Dancer2来构建Web应用程序.它工作得很好但是当我在浏览器中查看源代码时,生成的HTML源代码充满了分散的空白,就像这样

    <tr>
        <td>2</td>



            <td>Cheeseburger</td>

        <td>4.50&nbsp;€</td>
    </tr>
Run Code Online (Sandbox Code Playgroud)

我的模板<% ... %>在现在空白的地方有代码.我更喜欢它看起来像这样:

    <tr>
        <td>2</td>
            <td>Cheeseburger</td>
        <td>4.50&nbsp;€</td>
    </tr>
Run Code Online (Sandbox Code Playgroud)

或者,甚至更好:

<tr><td>2</td><td>Cheeseburger</td><td>4.50&nbsp;€</td></tr>
Run Code Online (Sandbox Code Playgroud)

我正在使用Template :: Toolkit,并认为该TRIM属性正是我需要的,并将其添加到我的config.yml:

template: "template_toolkit"
session: "YAML"

engines:
  session:
    YAML:
      cookie_duration: 6 months
  template:
    template_toolkit:
      start_tag: '<%'
      end_tag:   '%>'
      TRIM:      '1'
Run Code Online (Sandbox Code Playgroud)

但这不起作用.我已经改变start_tagend_tag不同的东西(验证此文件被读取)和实际工作.但是TRIM选项没有.

我使用了错误的选项或在错误的地方提供它吗?我所做的所有谷歌搜索都展示了如何以编程方式设置TT选项,例如在这个答案中.但由于我没有明确地实例化TT相关的任何内容,我甚至不知道应该在哪里放置这样的代码.


我创建了我的应用程序dancer2 -a so.

意见/ index.tt

<table>
    <tbody>
        <% FOREACH item in group.items %>
            <tr>
                <td><% item.order_num %></td>
                <%# one-line comment %>
                <%# one-line …
Run Code Online (Sandbox Code Playgroud)

perl template-engine dancer

2
推荐指数
1
解决办法
199
查看次数