Jade语法

一、代码

不会被缓冲代码

  1. ul
  2. - for(var i=0; i<; i++)
  3. li Jade Engine

会转换为:

  1. <ul>
  2. <li>Jade Engine</li>
  3. <li>Jade Engine</li>
  4. <li>Jade Engine</li>
  5. </ul>

被缓冲代码

  1. p= 'Hello Jade'

会转换为:

  1. <p>Hello Jade</p>

注意: =默认会转义内容

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

会转换为:

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

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

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

会转换为:

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

二、使用变量

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

会转换为:

  1. <p>my name is Jade</p>

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

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

会转换为:

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

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

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

会转换为:

  1. &lt;script&gt;&lt;/script&gt;

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

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

会转换为:

  1. <script></script>

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

三、循环

语法结构:

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

数组实例

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

会转换为:

  1. <li>fe</li>
  2. <li>wandoujia</li>
  3. <li>beijing</li>
  4. <li>We want you</li>

对象实例

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

会转换为:

  1. <li>catagory : fe</li>
  2. <li>company : wandoujia</li>
  3. <li>local : beijing</li>

四、Case

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

方式一 本文推荐的方式

  1. - var apples = 1
  2. case apples
  3. when 0
  4. p you have no apples
  5. when 1
  6. p you have an apple
  7. default
  8. p you have #{apples} apples

会转换为:

  1. <p>you have an apple</p>

方式二

  1. - var apples = 1
  2. case apples
  3. when 0: p you have no apples
  4. when 1: p you have an apple
  5. default: p you have #{apples} apples

方式三

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

  1. - var apples = 1
  2. case apples
  3. when 0
  4. when 1
  5. p you have few apples
  6. default
  7. p you have #{apples} apples

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

  1. <p>you have few apples</p>

五、过滤器

支持markdown

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

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

会转换为:

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

六、Mixins

无参数的mixin

  1. mixin join
  2. ul
  3. li 我们需要一帮人
  4. li 喜欢前端
  5. li 了解前端
  6. li 愿意在前端不断学习奋斗的
  7. li 你是吗?
  8. li 快来加入我们把
  9.  
  10. +join()

会转换为:

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

有参数的mixin

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

会转换为:

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

minxin中支持block

  1. mixin join(company)
  2. ul
  3. li 我们需要一帮人
  4. li 喜欢前端
  5. li 了解前端
  6. li 愿意在前端不断学习奋斗的
  7. if block
  8. block
  9. else
  10. li 你是吗?
  11. li 快来加入我们把
  12.  
  13. +join('wandoujia')
  14. li 我们这有神马?
  15. li 我们这个有一帮能折腾的老师阿姨
  16. li 我们这有美丽的阿姨
  17. li 我们每周都有技术交流
  18. li 我们这可以用很多开源的新技术

会转换为:

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

minxin中还支持attributes

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

会转换为:

  1. <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. 对int类型最小值INT_MIN取负值结果不变

    在32位系统中,int类型的最大值是0x7fffffff(即除了最高的1Bit其他31位都为1),而最小值是0x80000000(除了最高1bit,其他31位都为0). 显然,对于最小值求负数是不存在 ...

  2. POJ 3384 Feng Shui(计算几何の半平面交+最远点对)

    Description Feng shui is the ancient Chinese practice of placement and arrangement of space to achie ...

  3. Alpha发布文案加美工展示

    目录 团队简介 项目进展 组内分工 队员总结 后期计划 一.团队简介 二.项目进展 从选题发布到今天的Alpha发布,我们团队经历了许许多多的磨难.我们最终设计了如下的功能:首页.班级.个人.更多.打 ...

  4. 11.24Daily Scrum(2)

    人员 任务分配完成情况 明天任务分配 王皓南 实现网页上视频浏览的功能.研究相关的代码和功能.996 数据库测试 申开亮 实现网页上视频浏览的功能.研究相关的代码和功能.997 实现视频浏览的功能 王 ...

  5. 阅读 用P4对数据平面进行编程

    引言 关于题目,对数据平面进行编程,在之前读过the road to SDN,软件定义网络的思想在于数控分离,其对网络行为的编程暂时只局限于网络控制平面.其转发平面在很大程度上受制于功能固定的包处理硬 ...

  6. button type=“submit”

    写js遇到任何怪异的行为 一定要先看看是不是submit搞的鬼. 函数内部最后总是返回 return false; 也是一个好的习惯

  7. Debian 7 amd64问题

    Debian 7 发布了有1段时间,最近才在自己的电脑硬盘安装,用户体验还算可以.在安装Debian的过程中,有问题还是要记录一下的. 注意:遇到的问题跟硬件体系相关,可能在个别电脑没法重现. 1.默 ...

  8. idea导出jar包

    在File->Project Structure->Artifacts,如图:  然后: 点击Apply,OK. 跳出去就可以看到多了META-INF文件夹: 然后build项目,就可以看 ...

  9. SPDY以及HTTP2.0

    背景介绍 HTTP2.0跟SPDY在不少理念上是相似的,目的都是为了提升HTTP1.1的性能. HTTP2.0将会是业界的标准,比SPDY要完善,今后可能会都转向http2.0而放弃SPDY. SPD ...

  10. shmem:

    在/proc/meminfo中发现,cached不等于ActiveFile + InActiveFile,我们来看看cache到底都包括啥内存 1)首先肯定包含activeFile 和 inactiv ...