Jade语法

一、代码

不会被缓冲代码

ul
- for(var i=0; i<; i++)
li Jade Engine

会转换为:

<ul>
<li>Jade Engine</li>
<li>Jade Engine</li>
<li>Jade Engine</li>
</ul>

被缓冲代码

  p= 'Hello Jade'

会转换为:

<p>Hello Jade</p>

注意: =默认会转义内容

p= 'Welcome to wandoujia fe, we want <b>you</b>'

会转换为:

<p>Welcome to wandoujia fe, we want &lt;b&gt;you&lt;/b&gt;</p>

如果不想被转义的,在=前面添加!

p!= 'Welcome to wandoujia fe, we want <b>you</b>'

会转换为:

<p>Welcome to wandoujia fe, we want <b>you</b></p>

二、使用变量

- var name = 'Jade'
p my name is #{name}

会转换为:

<p>my name is Jade</p>

如果要输出 #{},那就得使用/来转义

- var name = 'yaochun'
p my name is \#{name}

会转换为:

<p>my name is #{name}</p>

变量中的特殊字符会被转义,如:

- var name = '<script></script>'
| #{name}

会转换为:

&lt;script&gt;&lt;/script&gt;

如要得到不转义的,用!替换#来调用

- var name = '<script></script>'
| !{name}

会转换为:

<script></script>

| 其实就是管道,一般也可以定义一段文本

三、循环

语法结构:

each VAL[,KEY] in OBJ
  • VAL是值
  • KEY是键,可选
  • OBJ是对象,array or object

数组实例

- var jobs = ["fe", "wandoujia", "beijing", "We want you"]
each job in jobs
li= job

会转换为:

<li>fe</li>
<li>wandoujia</li>
<li>beijing</li>
<li>We want you</li>

对象实例

- var jobs = {"catagory" : "fe", "company" : "wandoujia", "local" : "beijing"}
each val,key in jobs
li #{key} : #{val}

会转换为:

<li>catagory : fe</li>
<li>company : wandoujia</li>
<li>local : beijing</li>

四、Case

case主要的作用和js里面的switch一样

方式一 本文推荐的方式

- var apples = 1
case apples
when 0
p you have no apples
when 1
p you have an apple
default
p you have #{apples} apples

会转换为:

<p>you have an apple</p>

方式二

- var apples = 1
case apples
when 0: p you have no apples
when 1: p you have an apple
default: p you have #{apples} apples

方式三

有些时候,确实有需求合并一些when的情况

- var apples = 1
case apples
when 0
when 1
p you have few apples
default
p you have #{apples} apples

当apples这个值为0或者1的时候会转换为:

<p>you have few apples</p>

五、过滤器

支持markdown

注意:必须是已经安装 markdown-js 或者 node-discount

:markdown
我们来自豌豆荚前端,欢迎有志之士加盟,简历发送至zhangyaochun@wandoujia.com

会转换为:

<p>我们来自豌豆荚前端,欢迎有志之士加盟,简历发送至zhangyaochun@wandoujia.com</p>

六、Mixins

无参数的mixin

mixin join
ul
li 我们需要一帮人
li 喜欢前端
li 了解前端
li 愿意在前端不断学习奋斗的
li 你是吗?
li 快来加入我们把 +join()

会转换为:

<ul>
<li>我们需要一帮人</li>
<li>喜欢前端</li>
<li>了解前端</li>
<li>愿意在前端不断学习奋斗的</li>
<li>你是吗?</li>
<li>快来加入我们把</li>
</ul>

有参数的mixin

mixin join(company)
ul
li 我们 #{company} 需要一帮人
li 喜欢前端
li 了解前端
li 愿意在前端不断学习奋斗的
li 你是吗?
li 快来加入我们 #{company} 把 +join('wandoujia')

会转换为:

<ul>
<li>我们 wandoujia 需要一帮人</li>
<li>喜欢前端</li>
<li>了解前端</li>
<li>愿意在前端不断学习奋斗的</li>
<li>你是吗?</li>
<li>快来加入我们 wandoujia 把</li>
</ul>

minxin中支持block

mixin join(company)
ul
li 我们需要一帮人
li 喜欢前端
li 了解前端
li 愿意在前端不断学习奋斗的
if block
block
else
li 你是吗?
li 快来加入我们把 +join('wandoujia')
li 我们这有神马?
li 我们这个有一帮能折腾的老师阿姨
li 我们这有美丽的阿姨
li 我们每周都有技术交流
li 我们这可以用很多开源的新技术

会转换为:

<ul>
<li>我们需要一帮人</li>
<li>喜欢前端</li>
<li>了解前端</li>
<li>愿意在前端不断学习奋斗的</li>
<li>我们这有神马?</li>
<li>我们这个有一帮能折腾的老师阿姨</li>
<li>我们这有美丽的阿姨</li>
<li>我们每周都有技术交流</li>
<li>我们这可以用很多开源的新技术</li>
</ul>

minxin中还支持attributes

mixin link(href, name)
a(class!=attributes.class, title!=attributes.title, href=href)= name +link('http://wandoujia.com/join', '豌豆荚前端招聘')(class="btn", title="招聘啦,小伙伴快来点")

会转换为:

<a title="招聘啦,小伙伴快来点" href="http://wandoujia.com/join" class="btn">豌豆荚前端招聘</a>

七、包含

有点类似freemaker,通过include来载入一些jade模板

转自:http://www.w3cplus.com/html/jade.html

Jade模板引擎学习(二)语法:代码、变量、循环、过滤器及mixin的更多相关文章

  1. jade模板引擎学习笔记(WebsStorm9.0.3+ nodejs+express+jade)

    jade环境搭建 jade标签写法 jade注释 jade添加类名.id.属性 jade添加脚本,css jade变量 jade多行文本显示 jade流程代码:for,each,while jade流 ...

  2. Jade模板引擎学习(一)安装及基本语法

    Jade是一款高性能简洁易懂的模板引擎,Jade是Html的Javascript实现,在服务端(NodeJS)及客户端均有支持. 一.功能 客户端支持  超强的可读性 灵活易用的缩进 块扩展 代码默认 ...

  3. Express全系列教程之(十):jade模板引擎

    一.前言 随着前端业务的不断发展,页面交互逻辑的不断提高,让数据和界面实现分离渐渐被提了出来.JavaScript的MVC思想也流行了起来,在这种背景下,基于node.js的模板引擎也随之出现. 什么 ...

  4. Jade 模板引擎使用

    在 Express 中调用 jade 模板引擎 jade 变量调用 if 判断 循环 Case 选择 在模板中调用其他语言 可重用的 jade 块 (Mixins) 模板包含 (Includes) 模 ...

  5. artTemplate模板引擎学习实战

    在我的一篇关于智能搜索框异步加载数据的文章中,有博友给我留言,认为我手写字符串拼接效率过低,容易出错.在经过一段时间的摸索和学习之后,发现现在拼接字符串的方法都不在是自己去书写了,而是使用Javasc ...

  6. Express框架之Jade模板引擎使用

    日期:2018-7-8  十月梦想  node.js  浏览:2952次  评论:0条 前段时间讲说了ejs模板引擎,提到了jade的效率等等问题!今天在这里简单提一下jade的使用方式!结合expr ...

  7. Jade模板引擎使用详解

    在 Express 中调用 jade 模板引擎 jade 变量调用 if 判断 循环 Case 选择 在模板中调用其他语言 可重用的 jade 块 (Mixins) 模板包含 (Includes) 模 ...

  8. nodejs jade 模板 引擎的使用方法

    1.新建项目 2.使用模板引擎 app.set('view engine','jade'); 3.使用render渲染一个视图 res.render(用于指定需要被渲染的视图(必选),本地变量(可选) ...

  9. NVelocity模板引擎学习笔记

    NVelocity模板引擎学习笔记 学习模板引擎有一段时间现在做一些总结

随机推荐

  1. C struct中的位域 bitfield

    C struct中的位域 bitfield 结构体的成员可以限制其位域,每个成员可以使用用比字节还小的取值范围,下面的结构体s1中,四个成员每个成员都是2bit的值(0~3),整个结构体占据的空间依然 ...

  2. HDU 2490 Parade(DPの单调队列)(2008 Asia Regional Beijing)

    Description Panagola, The Lord of city F likes to parade very much. He always inspects his city in h ...

  3. mysql数据库配置主从同步

    MySQL主从同步的作用 .可以作为一种备份机制,相当于热备份 .可以用来做读写分离,均衡数据库负载 MySQL主从同步的步骤 一.准备操作 .主从数据库版本一致,建议版本5.5以上 .主从数据库数据 ...

  4. python学习笔记02:运行python程序

    1.启动cmd命令行,输入python后回车,运行python解释器: 输入python代码后回车: print('Hello World')

  5. 机器学习——DBN深度信念网络详解(转)

    深度神经网路已经在语音识别,图像识别等领域取得前所未有的成功.本人在多年之前也曾接触过神经网络.本系列文章主要记录自己对深度神经网络的一些学习心得. 简要描述深度神经网络模型. 1.  自联想神经网络 ...

  6. 提升MyEclipse运行速度

    修改MyEclipse.ini文件中的,将-vmargs后面的参数修改为 -Xms256m -Xmx768m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:Max ...

  7. 第45天:2017webstrom下载破解汉化

    1.webstrom 11.0.3下载地址1:http://pan.baidu.com/s/1kVQjcwf 密码:uggr 下载地址2:http://pan.baidu.com/s/1kVQjcwf ...

  8. poj1456——Supermarket

    Supermarket Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 14656   Accepted: 6656 Desc ...

  9. 【题解】SCOI2007组队

    恩……为什么大家都这么执着于 \(O(n^{2})\) 的复杂度捏?如果接受 \(O(n^{2} + nV)\) 的复杂度,那这题可不是道**题吗( • ̀ω•́ )✧ 首先把所有的人按照身高排个序, ...

  10. POJ1990:MooFest——题解

    http://poj.org/problem?id=1990 题目大意:定义一对在树轴上的点,每对点产生的值为两点权值最大值*两点距离,求点对值和. 显然n*n复杂度不行,我们需要用树状数组维护两个东 ...