标签: template-engine

使用Smarty将元素排列成列

我有一个PHP页面,生成一个元素数组.为简单起见,我们假设它按数字顺序包含数字1-5.这些数字需要相等(或尽可能接近相等)分成两列(使用html表),如下所示:

1   4
2   5
3
Run Code Online (Sandbox Code Playgroud)

列数可能会在将来发生变化.由于这是对表示级别的更改,因此我认为它应该是可以通过仅在模板文件中进行更改来实现的.这告诉我,应该处理将元素划分为列的Smarty.

有没有办法用Smarty(以及如何)实现这一点,还是应该让php文件完成所有工作?

php template-engine smarty

0
推荐指数
1
解决办法
1437
查看次数

apache velocity:附带已编译的模板

我可以使用编译模板发送我的应用程序吗

我在速度的所有编译模板中都有这样的东西吗?或者他们每次运行都必须重新编译?

java velocity template-engine

0
推荐指数
1
解决办法
1073
查看次数

twig模板问题,数组和索引在另一个数组中使用

我正在使用树枝模板引擎.

我基本上有一个循环通过资源的数组,但是我已经在其中添加了另一个具有密钥的数组,基于顶级数组中的循环索引

所以它看起来像

array("0" => array("a", "b",
      "1" => array("d", "e");
Run Code Online (Sandbox Code Playgroud)

和一个去的数组

array("0" => array("food", "drink",
      "1" => array("sport", "games");
Run Code Online (Sandbox Code Playgroud)

如果我做{{loop.index}}我从第一个数组得到0和1,这很好

我想要做的是传递{{loop.index}}到这个for循环

{% for embedData in shareData %}
    {{embedData.embed}}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

所以我可以根据第一个数组键从第二个数组中获取数组值

反正有没有这样做?

php template-engine twig

0
推荐指数
1
解决办法
4416
查看次数

有没有更好的方法来应用与Jinja/Flask的nl2br过滤器?

可能重复:
为什么这个Jinja nl2br过滤器逃避了?而不是<p>?

我正在使用Jinja和Flask(启用自动启用),我正在尝试应用此过滤器

import re

from jinja2 import evalcontextfilter, Markup, escape

_paragraph_re = re.compile(r'(?:\r\n|\r|\n){2,}')

app = Flask(__name__)

@app.template_filter()
@evalcontextfilter
def nl2br(eval_ctx, value):
    result = u'\n\n'.join(u'<p>%s</p>' % p.replace('\n', '<br>\n') \
        for p in _paragraph_re.split(escape(value)))
    if eval_ctx.autoescape:
        result = Markup(result)
    return result
Run Code Online (Sandbox Code Playgroud)

它的问题在于它从不应用<br>s并且总是<p>在每条线周围应用s.

如果我输入:

1
2

3
4
Run Code Online (Sandbox Code Playgroud)

在a中textarea,它被保存到数据库中作为"u'1\r \n2\r \n\r \n \n \n \n\r \n \n \n \n4'",当使用|nl2br过滤器放入Jinja时,它会以

<p>1</p>

<p>2</p>

<p>3</p>

<p>4</p>
Run Code Online (Sandbox Code Playgroud)

我正在寻找它

<p>1<br>2</p>
<p>3<br>4</p>
Run Code Online (Sandbox Code Playgroud)

这个正则表达式方法对我所追求的东西来说似乎有些过分.

请告诉我有一种更简单的方法可以实现这一目标,因为我一整天都在拔头发试图解决这个问题......

python regex template-engine jinja2 flask

0
推荐指数
1
解决办法
2068
查看次数

是否可以插入 freemarker 宏?

假设我有一个 freemarker 宏:

<#macro helloObject>
  World
</#macro>
Run Code Online (Sandbox Code Playgroud)

在某些情况下,我可以轻松调用它:

Hello, <@helloObject/>!
Run Code Online (Sandbox Code Playgroud)

但是插入它的语法是什么,例如,如果它是字符串的一部分?

<#assign greeting="Hello, <@helloObject>!"     /> <#-- doesn't work -->
<#assign greeting="Hello, ${helloObject}!"     /> <#-- doesn't work -->
<#assign greeting="Hello, ${@helloObject}!"    /> <#-- doesn't work -->
<#assign greeting="Hello, ${<@helloObject/>}!" /> <#-- doesn't work -->
<#assign greeting="Hello, @helloObject!"       /> <#-- doesn't work -->
${greeting}
Run Code Online (Sandbox Code Playgroud)

template-engine freemarker templating templating-engine string-interpolation

0
推荐指数
2
解决办法
2192
查看次数

Thymeleaf没有显示弹簧控制器的值

我是第一次练习百里香模板引擎.我已经按照教程等等,但我不知道我哪里出错了.

我的控制器:

public String mainPage(Model model){
    model.addAttribute("data", "Hello Thymeleaf");  
    return "main";
}
Run Code Online (Sandbox Code Playgroud)

我的HTML如下:

<!DOCTYPE html >
<html xmlns:th="http://www.thymeleaf.org">

<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>

<body>
   <h1>th:text="${data}"</h1>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

当我点击localhost时,它显示th:text ="$ {data}"而不是Hello Thymeleaf

<h1>"${data}"</h1>
Run Code Online (Sandbox Code Playgroud)

也不起作用.查看解析程序配置必须正确,因为它将main解析为main.html.我正在使用spring4 SpringTemplateEngine和spring4百万美元视图解析器.

提前致谢

java spring template-engine spring-mvc thymeleaf

0
推荐指数
1
解决办法
6744
查看次数