首页 技术 正文
技术 2022年11月7日
0 收藏 950 点赞 432 浏览 1500 个字

Mustache是一个Logic-Less模板引擎,即:零逻辑引擎,原因在于它只有标签,没有流程控制语句,这是它与其它模板引擎不同的地方。

Mustache小巧玲珑,几乎用各种语言都实现了一遍。

Mustache的用途

不仅仅用于HTML页面渲染,也可以用于配置文件、XML渲染等各种文本文件。

第一个例子

一个典型的mustache文件如下:

Hello {{name}}
You have just won {{value}} dollars!
{{#in_ca}}
Well, {{taxed_value}} dollars, after taxes.
{{/in_ca}}

给定一个哈希表:

{
"name": "Chris",
"value": 10000,
"taxed_value": 10000 - (10000 * 0.4),
"in_ca": true
}

将会产生如下结果:

Hello Chris
You have just won 10000 dollars!
Well, 6000.0 dollars, after taxes.

Mustache只有5种标签,就是这么简单

变量标签

{{username}}

默认情况下,username中的<等符号会被转义为&lt;

防止转义使用{{&username}}或者使用{{{username}}}

区块标签

{{#sectionVariable}}

这里是区块

{{/sectionVariable}}

区块变量可以取四种数据类型:

1、 false或者空数组:不显示区块内容

2、 非空数组:表示迭代数组中的每一项

Template:{{#repo}}
<b>{{name}}</b>
{{/repo}}
Hash:{
"repo": [
{ "name": "resque" },
{ "name": "hub" },
{ "name": "rip" }
]
}
Output:<b>resque</b>
<b>hub</b>
<b>rip</b>

如果区块直接是一个字符串列表

View:{
"musketeers": ["Athos", "Aramis", "Porthos", "D'Artagnan"]
}
Template:{{#musketeers}}
* {{.}}
{{/musketeers}}结果:
* Athos
* Aramis
* Porthos
* D'Artagnan

3、函数:调用一次函数

Template:{{#wrapped}}
{{name}} is awesome.
{{/wrapped}}
Hash:{
"name": "Willy",
"wrapped": function() {
return function(text, render) {
return "<b>" + render(text) + "</b>"
}
}
}
Output:<b>Willy is awesome.</b>

4、字典类型:控制上下文

Template:{{#person?}}
Hi {{name}}!
{{/person?}}
Hash:{
"person?": { "name": "Jon" }
}
Output:Hi Jon!

反转区块标签:用于实现else结构

Template:{{#repo}}
<b>{{name}}</b>
{{/repo}}
{{^repo}}
No repos :(
{{/repo}}
Hash:{
"repo": []
}
Output:No repos :(

注释标签

{{!这里随便写点注释}}

包含标签

{{>head.mustache}}

Mustache的包含是动态包含,而不是简单地复制粘贴。

我所知道的其它模板引擎

java模板引擎

freemarker

velocity

beetl

smarty4j

httl

各种语言:

mustuche

参考资料

官方文档

Python版

Java版

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,487
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,903
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,736
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,487
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,127
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,289