Jade是Node.js的一个模板引擎,它借鉴了Haml的很多地方,所以语法上和Haml比较相近。并且,Jade也支持空格。
在Jade里,一行开头的任何文本都被默认解释成HTML标签。并且你只需要你写开始标签——注意:不需要加“<>”。因为Jade会帮我们渲染闭合和开始标签。例如:
rush:plain;">
body
div
h1 Jade是Node.js的
一个模板引擎
p 它借鉴了Haml的很多地方,所以语法上和Haml比较相近。
div
footer &
copy; Pandora
上面的Jade模板最终渲染出的HTML代码是:
rush:xhtml;">
Jade是Node.js的一个模板引擎
它借鉴了Haml的很多地方,所以语法上和Haml比较相近。
注意:如果没有写标签名,则默认就是div标签。
2、变量/数据
传给Jade模板的数据我们称之为locals。 使用等号“=”来输出一个变量的值。
(locals):
rush:js;">
{
title: "Express.js Guide",body: "The Comprehensive Book on Express.js"
}
Jade code :
rush:xhtml;">
h1= title
p= body
渲染输出的HTML :
rush:xhtml;">
Express.js Guide
The Comprehensive Book on Express.js
3、读取变量
Jade中读取变量的值是通过#{name}来实现的。例如:
rush:plain;">
- var title = "Node"
p I love #{title}
在模板被编译时变量的值就会被处理,所以,不要在可执行JavaScript(-)里使用它。
属性紧跟在标签之后,且用“()”括起来,多属性用“,”分隔。例如:body (name1 = “value1”,name2 = “value2”)。
rush:xhtml;">
div(id="content",class='main')
a(href='http://csdn.net',title='csdn主页', target='_blank') CSDN:中国软件联盟
form(action="/login")
button(type="submit",value="提交")
输出:
动态属性即属性的值是动态的,即用一个变量来表示属性的值。符号“|”可以在新的一行里写HTML节点内容。例如:
rush:plain;">
a(href=url,data-active=isActive)
label
input(type="check
Box",checked=isChecked)
| yes / no
提供给上面模板的数据:
rush:js;">
{
url: "/
logout",isActive: true,isChecked: false
}
最终渲染后输出的HTML:
注意:属性值为false的属性在输出HTML代码时将被忽略;而没有传入属性值时,将默认为true.
5、字面量
为了省事,可以直接在标签名之后写类名和ID名。例如:
渲染输出的HTML:
contact me
rush:plain;">
div
| 我两年前开始学习前端
| 在此之间,我学过了html,jQuery,JavaScript,Python, Css3,HTML5,Bootstrap,D3.js,SVG...而现在我在学Node。并且我已经深深的爱上了前端。
rush:plain;">
- var language = ['JavaScript','Node','Python','Java']
div
each value,index in language
p= index + "," + value