jade模板
jade 模板使用
npm install jade -g 安装到全局
jade index.jade 导出一个 index.html 压缩后的
jade -P index.jade 导出一个 index.html 没有压缩的
jade -P -w index.jade -w 对文件实时编译
特殊的div
.container
p 巧巧
a(href='http://baidu.com', title='巧莉', data-uid='100')
input(name='course', type='text', value='jade')
input(name='type', type='checkbox' checked)
长文本写法
p
|
qiaoqiaotongxie
|
2.bbc
插入标签
p.
a
qiaoqiaojadjade
1. aa
2. bb
<strong>我就是这么叼</strong>
3. cc
4. dd
5. e
a qiaoqiaojad
p
|
a
a 我是来插入广告的
|
1. aa
|
2. bb
|
3. cc
a 我是一个爱捣乱的标签
注释和条件注释
单行注释 //
非缓冲注释 //-
块注释
h3 单行注释
// a 巧克力
p 非缓冲注释
//- 你是看不到宝宝我的
h3 块注释
//
ul
li
a 也无风雨也无晴
li
a 有花堪折直须折
li
a 锦瑟无端五十弦
//-
ul
li
a 也无风雨也无晴
li
a 有花堪折直须折
li
a 锦瑟无端五十弦
IE注释
doctype html
html
<!--[if IE 7]><html class='ie7'><! [endif]-->
<!--[if IE 8]><html class='ie8'><! [endif]-->
<!--[if IE 9]><html class='ie9'><! [endif]-->
<!--[if !IE]><!--><html><!--<![endif]-->
如果用全注释 html标签在结尾处是要闭合的
变量
页面内声明变量
- var course = 'jade'
命令行方式变量
jade index.jade -P -w --obj '{"course":"jade course"}'
命令行方式外部文件
jade index.jade -P -w -O index.json
// 网站开发中 通常数据都是从后台程序去调用
转义
#{data}
p= data
非转义
!{data}
p!= data
p \!{htmlData} 输出 !{htmlData}
p \#{htmlData} 输出#{htmlData}
没有数值的变量
input(value="#{newData}")
input(value=newData)
<input value="undefined">
<input>
流程
-var qiao = {course: 'jade',study:'巧莉',age:24}
for 语法
-for (var k in qiao)
p= qiao[k]
each 语法
-each value, key in qiao
p #{key}: #{value}
each value, key in qiao
p #{key}: #{value}
h3 遍历数组
-var courses = ['node', 'jade', 'express', 'Ejs', 'cheerio', 'bower']
-each value, key in courses
p #{key}: #{value}
嵌套循环
-var sections = [{id:1,items:['a','b']},{id:2,items:['c','d','e','h']}];
dl
each section in sections.length > 0 ? sections : [{id:0, items: ['none']}]
dt= section.id
each item in section.items
dd= item
嵌套循环
while循环
-var n = 0
ul
while n < 4
li= n++
if else unless 语法
- var show = true
- var lessons = ['jade', 'node'];
if show
p 显示
if lessons.length > 2
p #{lessons.join(', ')}
else if lessons.length > 1
p #{lessons.join('/ ')}
else
p no lesson
else
p no show
unless 反向的判断
unless !show
p #{lessons.length}
unless !lessons.length
p 逗逼 #{lessons.length}
case 语法
- var name = 'jade'
case name
when 'java'
when 'node'
p Hi node !
when 'jade': p Hi jade !
when 'express': p Hi express !
default
p Hi #{name}
mixin的用法
mixin lesson
p qiao study jade
+lesson
mixin study(name,courses)
p #{name}
ul#courses.courses
each course in courses
li= course
+study('巧莉',['jade','node','express','cheerio'])
+study('苏东坡',['西湖醋鱼', '叫花鸡', '东坡肉'])
mixin team(slogon)
h4 #{slogon}
if block
block
else
p no team
+team('slogon')
p Good job!
p 大逗逼
结果
<h4>slogon</h4>
<p>Good job!</p>
<p>大逗逼</p>
h2 单个属性值的情况
mixin attr(name)
p(class!=attributes.class) #{name}
+attr('attr')(class='magic')
// != 此处的class是不需要转义的 h2 多个属性值的情况
mixin attrs(name)
p&attributes(attributes) #{name}
+attrs('attrs')(class='magic2', id='deep') h3 参数不定的情况下
mixin magic(name, ...items)
ul(class='#{name}')
each item in items
li= item
+magic('qiao','逗逼','搞笑的')
jade模板的更多相关文章
- Jade 模板引擎使用
在 Express 中调用 jade 模板引擎 jade 变量调用 if 判断 循环 Case 选择 在模板中调用其他语言 可重用的 jade 块 (Mixins) 模板包含 (Includes) 模 ...
- jade模板引擎学习笔记(WebsStorm9.0.3+ nodejs+express+jade)
jade环境搭建 jade标签写法 jade注释 jade添加类名.id.属性 jade添加脚本,css jade变量 jade多行文本显示 jade流程代码:for,each,while jade流 ...
- 【nodejs】jade模板入门
使用jetbrians webstom创建空项目 1.创建package.json 引用依赖配置 { "name": "demojade", "des ...
- vue 使用Jade模板写html,stylus写css
vue 使用Jade模板写html,stylus写css 日常工作都是使用vue开发页面和webApp,写的多了就想偷懒简化各种书写方式,所以使用了jade写html,stylus写css,省了很多的 ...
- jade模板 注意事项
1. jade模板 语法 doctype html html head body header div 2. 添加内容:直接在标签后边加空格 直接写内容 如下: div 我要写的内容 3. ...
- Express框架之Jade模板引擎使用
日期:2018-7-8 十月梦想 node.js 浏览:2952次 评论:0条 前段时间讲说了ejs模板引擎,提到了jade的效率等等问题!今天在这里简单提一下jade的使用方式!结合expr ...
- Jade模板引擎使用详解
在 Express 中调用 jade 模板引擎 jade 变量调用 if 判断 循环 Case 选择 在模板中调用其他语言 可重用的 jade 块 (Mixins) 模板包含 (Includes) 模 ...
- jade——创建第一个jade模板
什么是jade? jade是node.js的一个模板引擎,参考了haml的语法,是简写的html语言. 使用单个标签代替双标签,类似于Python,通过缩进来确定从属关系,没有结束符号,非常简洁,使用 ...
- Jade模板引擎学习(二)语法:代码、变量、循环、过滤器及mixin
Jade语法 一.代码 不会被缓冲代码 ul - for(var i=0; i; i++) li Jade Engine 会转换为: <ul> <li>Jade Engine& ...
随机推荐
- MySQL 事务
MySQL 事务主要用于处理操作量大,复杂度高的数据.比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成 ...
- context上下文 php版解释
context翻译为上下文其实不是很好,只是翻译理解大概的作用,对于开发来说,context是对定义的使用的变量,常量或者说是配置, 部分的函数功能除了缺省值之外,往往需要手动设置一些定义量来配合当前 ...
- 阿里云服务器Linux CentOS安装配置(二)yum安装svn
阿里云服务器Linux CentOS安装配置(二)yum安装svn 1.secureCRT连接服务器 2.先创建一个文件夹,用来按自己的习惯来,用来存放数据 mkdir /data 3.yum安装sv ...
- eclipse导入项目后,java文件无法编辑的问题
新公司第一天,从svn checkout maven项目后,导入eclipse,发现文件的图标不对,如下图箭头所示,出现这个问题的原因, 是项目的的目录下没有.classpath文件,所以需要执行下m ...
- 单例模式-C++
单例模式(Singleton) --本文内容部分引自<大话设计模式 Chapter21> 一.概念:保证一个类仅有一个实例,并提供一个访问它的全局访问点. 通常我们可以让一个全局变量使一个 ...
- scala中的数组的转换操作
1.共有两种操作 转换成一种新的数组 2.yield转换 3.函数式编程转换
- [转]ORACLE函数大全
SQL中的单记录函数 1.ASCII返回与指定的字符对应的十进制数;SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ' ...
- WPF打包32位和64位程序 运行在ghost WIN7上问题
WIN10,VS2015,编译平台"anycpu".WIN7系统为ghost版 1. 在.NET4.5下编译,程序打包以后,在WIN7上运行界面启动有3.4秒的延迟:将.NET版本 ...
- 《 spring mvc 》学习计划
第一章:1月1日-1月2日 第二章:1月3日 第三章:1月4日 第四章:1月5日 第五章:1月6日-1月7日 第六章:1月8日 第七章:1月9日 第八章:1月10日 第九章:1月11日-1月12日 第 ...
- tftp 限制ip 限制ip段 或者多个ip段访问
1 限制单个ip访问 tftp 配置tftp信息 vi /etc/xinetd.d/tftp 在 service tftp配置信息中添加 only_form =ip 重启 service xinet ...