Jade模板引擎学习(二)语法:代码、变量、循环、过滤器及mixin
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 <b>you</b></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}
会转换为:
- <script></script>
如要得到不转义的,用!
替换#
来调用
- - 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的更多相关文章
- jade模板引擎学习笔记(WebsStorm9.0.3+ nodejs+express+jade)
jade环境搭建 jade标签写法 jade注释 jade添加类名.id.属性 jade添加脚本,css jade变量 jade多行文本显示 jade流程代码:for,each,while jade流 ...
- Jade模板引擎学习(一)安装及基本语法
Jade是一款高性能简洁易懂的模板引擎,Jade是Html的Javascript实现,在服务端(NodeJS)及客户端均有支持. 一.功能 客户端支持 超强的可读性 灵活易用的缩进 块扩展 代码默认 ...
- Express全系列教程之(十):jade模板引擎
一.前言 随着前端业务的不断发展,页面交互逻辑的不断提高,让数据和界面实现分离渐渐被提了出来.JavaScript的MVC思想也流行了起来,在这种背景下,基于node.js的模板引擎也随之出现. 什么 ...
- Jade 模板引擎使用
在 Express 中调用 jade 模板引擎 jade 变量调用 if 判断 循环 Case 选择 在模板中调用其他语言 可重用的 jade 块 (Mixins) 模板包含 (Includes) 模 ...
- artTemplate模板引擎学习实战
在我的一篇关于智能搜索框异步加载数据的文章中,有博友给我留言,认为我手写字符串拼接效率过低,容易出错.在经过一段时间的摸索和学习之后,发现现在拼接字符串的方法都不在是自己去书写了,而是使用Javasc ...
- Express框架之Jade模板引擎使用
日期:2018-7-8 十月梦想 node.js 浏览:2952次 评论:0条 前段时间讲说了ejs模板引擎,提到了jade的效率等等问题!今天在这里简单提一下jade的使用方式!结合expr ...
- Jade模板引擎使用详解
在 Express 中调用 jade 模板引擎 jade 变量调用 if 判断 循环 Case 选择 在模板中调用其他语言 可重用的 jade 块 (Mixins) 模板包含 (Includes) 模 ...
- nodejs jade 模板 引擎的使用方法
1.新建项目 2.使用模板引擎 app.set('view engine','jade'); 3.使用render渲染一个视图 res.render(用于指定需要被渲染的视图(必选),本地变量(可选) ...
- NVelocity模板引擎学习笔记
NVelocity模板引擎学习笔记 学习模板引擎有一段时间现在做一些总结
随机推荐
- 对int类型最小值INT_MIN取负值结果不变
在32位系统中,int类型的最大值是0x7fffffff(即除了最高的1Bit其他31位都为1),而最小值是0x80000000(除了最高1bit,其他31位都为0). 显然,对于最小值求负数是不存在 ...
- POJ 3384 Feng Shui(计算几何の半平面交+最远点对)
Description Feng shui is the ancient Chinese practice of placement and arrangement of space to achie ...
- Alpha发布文案加美工展示
目录 团队简介 项目进展 组内分工 队员总结 后期计划 一.团队简介 二.项目进展 从选题发布到今天的Alpha发布,我们团队经历了许许多多的磨难.我们最终设计了如下的功能:首页.班级.个人.更多.打 ...
- 11.24Daily Scrum(2)
人员 任务分配完成情况 明天任务分配 王皓南 实现网页上视频浏览的功能.研究相关的代码和功能.996 数据库测试 申开亮 实现网页上视频浏览的功能.研究相关的代码和功能.997 实现视频浏览的功能 王 ...
- 阅读 用P4对数据平面进行编程
引言 关于题目,对数据平面进行编程,在之前读过the road to SDN,软件定义网络的思想在于数控分离,其对网络行为的编程暂时只局限于网络控制平面.其转发平面在很大程度上受制于功能固定的包处理硬 ...
- button type=“submit”
写js遇到任何怪异的行为 一定要先看看是不是submit搞的鬼. 函数内部最后总是返回 return false; 也是一个好的习惯
- Debian 7 amd64问题
Debian 7 发布了有1段时间,最近才在自己的电脑硬盘安装,用户体验还算可以.在安装Debian的过程中,有问题还是要记录一下的. 注意:遇到的问题跟硬件体系相关,可能在个别电脑没法重现. 1.默 ...
- idea导出jar包
在File->Project Structure->Artifacts,如图: 然后: 点击Apply,OK. 跳出去就可以看到多了META-INF文件夹: 然后build项目,就可以看 ...
- SPDY以及HTTP2.0
背景介绍 HTTP2.0跟SPDY在不少理念上是相似的,目的都是为了提升HTTP1.1的性能. HTTP2.0将会是业界的标准,比SPDY要完善,今后可能会都转向http2.0而放弃SPDY. SPD ...
- shmem:
在/proc/meminfo中发现,cached不等于ActiveFile + InActiveFile,我们来看看cache到底都包括啥内存 1)首先肯定包含activeFile 和 inactiv ...