实时监控
 
jade -P -w .\test1.jade
sublime 分栏,可以看到实时修改情况
 
 
1. 元素写法
 doctype html
<!--[if IE8]><html class='ie8'><![endif]-->
<!--[if IE9]><html class='ie9'><![endif]-->
<!--[if !IE]><!-->
html
<!--<![endif]-->
head
meta(http-equiv='Content-Type', content='text/html', charset='UTF-8')
title jade study
body
style.
body{color:#ff6600}
script.
var imoocCourse = 'jade'
h2 文档声明和头尾标签
h2 标签语法
section
div
ul
p
h2 元素属性
div#id.class1.class2 aa
a(href='http://imooc.com')
h2 注释
h3 单行注释
// h3.title(id='title')
h3 非缓存注释
//- #id.classname
h3 块注释
//-
p
a(href='http://imooc.com')
h3.title(id='title',class='title3') imooc
a(href='http://imooc.com',
title='imooc jade study',
data-uid='1000') link
input(name='course',type='text',value='jade')
input(name='type',type='checkbox',checked)
h3 混排的大段文本
p
| 1. aa
strong 11
| 2. bb
| 3. cc
| 4. dd
2. 传递参数
 
   a. 页面直接定义
      - var course = "jade";
   b. 编译命令带参数
       jade -P -w test2.jade --obj '{"course":"jade"}'
 
  c. 编码带上参数 json 文件
    jade -P -w .\test2.jade -O imooc.json
    imooc.json
    {
        "course":"jade3"
   }
 
参数使用
     #{course}
     #{course.toUpperCase()}
 doctype html
html
head
meta(charset='utf-8')
title #{course.toUpperCase()} study
body
h2 转义、
- var data = 'text'
- var htmlData = '<script>alert(1)</script><span>script</span>'
p #{data}
p 安全转义 #{htmlData}
p 非转义 !{htmlData} p= data
p= htmlData
p!= htmlData
p \#{htmlData}
p \!{htmlData} input(value=newData)
input(value=data)
h2 声明变量和替换数据
 
3. 定义代码片段 及 遍历
 doctype html
html
head
meta(charset='utf-8')
title 测试定义代码块
body
h2 流程
h3 for each 遍历对象
- var imooc = {course:'jade',level:'high'}
- for (var k in imooc)
p= imooc[k]
- each value,key in imooc
p #{key}: #{value}
h3 遍历数组
- var courses = ['node','jade','express']
- each item in courses
p= item
h3 嵌套循环
- var sections = [{id:1,items:['a','b']},{id:2,items:['c','d']}]
dl
each section in sections
dt= section.id
each item in section.items
dd= item
 
 
4. 利用 gulp 编译 jade
    gulpfile.js 可以自动编译新增 jade 文件
 var gulp = require('gulp'),
jade = require('gulp-jade'); gulp.task('jade', function() {
return gulp.src('**/*.jade')
.pipe(jade())
.pipe(gulp.dest('./'));
}); gulp.task('watch', function() {
gulp.watch('**/*.jade', ['jade']);
}); // gulp.task('watch', function() {
// gulp.watch('./**/*.jade', function(e) {
// var p = e.path.replace(__dirname, '')
// .replace(/\/[^\/]+?\.jade$/, '/');
// gulp.src(e.path)
// .pipe(jade())
// .pipe(gulp.dest('.' + p));
// });
// }); gulp.task('default', ['watch']);
 
 

jade 学习笔记 - gulp 自动编译的更多相关文章

  1. thinkphp学习笔记9—自动加载

    原文:thinkphp学习笔记9-自动加载 1.命名空间自动加载 在3.2版本中不需要手动加载类库文件,可以很方便的完成自动加载. 系统可以根据类的命名空间自动定位到类库文件,例如定义了一个类Org\ ...

  2. thinkphp学习笔记3—项目编译和调试模式

    原文:thinkphp学习笔记3-项目编译和调试模式 1.项目编译 在章节2.4项目编译中作者讲到使用thinkphp的项目在第一次运行的时候会吧核心需要加载的文件去掉空白和注释合并到一个文件中编译并 ...

  3. Jade学习笔记

    初学nodejs,折腾过用handlebars做模板,后来隔了一段重新学习,用了jade,真心简洁……记录一些学习笔记,以备复习. jade是基于缩进的,所以tab与space不能混用: 属性的设置: ...

  4. 学习笔记:自己编译安装OpenCV+测试opencv安装是否成功

    1. 安装编译依赖的软件包 # 安装读写不同图片类型的库: sudo apt-get install libjpeg8-dev libtiff4-dev libjasper-dev libpng12- ...

  5. pug(jade) 学习笔记

    from: https://www.cnblogs.com/xiaohuochai/p/7222227.html 对于一些嵌套层次较深的页面,在后期维护和修改时,一不小心少了一个尖括号,或者某个标签的 ...

  6. Vue.js 学习笔记之五:编译 vue 组件

    正如上一篇笔记中所说,直接使用 ES6 标准提供的模块规范来编写 Vue 组件在很多情况下可能并不是最佳实践.主要原因有两个,首先是市面上还有许多并没有对 ES6 标准提供完全支持的 Web 浏览器, ...

  7. Spring 4.0.2 学习笔记(2) - 自动注入及properties文件的使用

    接上一篇继续, 学习了基本的注入使用后,可能有人会跟我一样觉得有点不爽,Programmer的每个Field,至少要有一个setter,这样spring配置文件中才能用<property> ...

  8. 《 C#语言学习笔记》——自动属性

    属性是访问对象状态的首选方式,因为它们禁止外部代码实现对象内部的数据存储机制.属性还对内部数据的访问方式有了更多控制.一般以非常标准的方式定义属性,即通过一个公共属性直接访问一个私有成员. 利用自动属 ...

  9. Activiti工作流学习笔记(三)——自动生成28张数据库表的底层原理分析

    原创/朱季谦 我接触工作流引擎Activiti已有两年之久,但一直都只限于熟悉其各类API的使用,对底层的实现,则存在较大的盲区. Activiti这个开源框架在设计上,其实存在不少值得学习和思考的地 ...

随机推荐

  1. sudo 提示 'xxx is not in the sudoers file.This incident will be reported.的解决方法'

    在使用 Linux 的过程中,有时候需要临时获取 root 权限来执行命令时,一般通过在命令前添加 sudo 来解决. 但是第一次使用 sudo 时,有可能会得到这样一个错误提示 xxx is not ...

  2. Windows系统调用中API的3环部分(依据分析重写ReadProcessMemory函数)

    Windows内核分析索引目录:https://www.cnblogs.com/onetrainee/p/11675224.html Windows系统调用中API的3环部分 一.R3环API分析的重 ...

  3. Java性能优化的小细节

    性能优化实现方式(单纯考虑代码层面): 1.减小代码体积 2.提高运行效率 如何做: 1.尽量指定类.方法的final修饰符 带有final修饰的类是不可派生的,该类所有的方法都是final的,jav ...

  4. cobalt strike批量发送钓鱼邮件

    0×01 利用Cobalt strike生成木马 这里我们生成木马可以用cs带的HTA.OFFICE宏.word宏来使目标上线cs,这里以word宏病毒为例子. 首先我们需要制作一个word宏病毒来进 ...

  5. java源码解析

    String深入解析 String具有不变性的原因: String被final修饰,它不可能被继承,也就是任何对String的操作方法,都不会被继承覆写 String中保存数据的是一个char数组的v ...

  6. Pycharm 常用快捷键大全

    Pycharm 常用快捷键 常用快捷键 快捷键 功能 Ctrl + Q 快速查看文档 Ctrl + F1 显示错误描述或警告信息 Ctrl + / 行注释(可选中多行) Ctrl + Alt + L ...

  7. Tomcat源码分析三:Tomcat启动加载过程(一)的源码解析

    Tomcat启动加载过程(一)的源码解析 今天,我将分享用源码的方式讲解Tomcat启动的加载过程,关于Tomcat的架构请参阅<Tomcat源码分析二:先看看Tomcat的整体架构>一文 ...

  8. python学习-正则表达式(十)

    1.查看re模块的全部属性和函数 >>>import re,pprint >>>pprint.pprint(re.__all__) ['match', 'fullm ...

  9. 【Java必修课】各种集合类的合并(数组、List、Set、Map)

    1 介绍 集合类可谓是学习必知.编程必用.面试必会的,而且集合的操作十分重要:本文主要讲解如何合并集合类,如合并两个数组,合并两个List等.通过例子讲解几种不同的方法,有JDK原生的方法,还有使用第 ...

  10. SpringBoot系列教程之Bean加载顺序之错误使用姿势辟谣

    在网上查询 Bean 的加载顺序时,看到了大量的文章中使用@Order注解的方式来控制 bean 的加载顺序,不知道写这些的博文的同学自己有没有实际的验证过,本文希望通过指出这些错误的使用姿势,让观文 ...