初学nodejs,折腾过用handlebars做模板,后来隔了一段重新学习,用了jade,真心简洁……记录一些学习笔记,以备复习。

  jade是基于缩进的,所以tab与space不能混用;

  属性的设置:link(rel='stylesheet', href='/stylesheets/style.css');

  变量的定义:- var users = ["Sally","Joseph","Sam","Mike"]  不要var也可以;

  内容赋值:p= user 或 p ${user} 前者常用于内容就是变量,后者常用于拼接'Hello ' + ${user} , p Hello World 则是后者直接为内容;

  条件语句:

//case语句
- num = 10
case num
when 0
p you have no friends
when 1 : p you have friends
default
p you have #{num} friends //if语句
- options = { description : 'reference conditionals' }
- flag = false
#user
if options.description
h2 Description
p.description= options.description
else if flag
h2 Description
p.description.
User has no description,
why not add one...
else
h1 Description
p.description User has no description. - opts = { flag : false }
#sum
// ! 与 unless 同理
if !opts.flag
h2 Hello!
p= options.description
unless opts.flag
h2 World!
p= options.description

  循环语句:

- for (var i=0;i<3;i++)
li shit - var users = ["Sally","Joseph","Sam","Mike"];
- each user in users
p= user - addrs = ['BeiJing','GuangZhou','DongGuan']
- for addr in addrs
p #{addr} - names = {xing:'ye',ming:'renming'};
- each val,key in names
li #{key} : #{val}

  多行输出:

p
| You are sleeping.
| No I just have a rest.
p.
Second function.
Just for testing.
script.
console.log('Hello world');
console.log('Hello life');
script
|console.log('Hello world');
|console.log('Hello life');

  注释:

//
  注释块
  '//-'是服务器端注释

  转义 与 非转义 :

//- 默认和!=是不转义,不安全(标签直接执行); = 则会转义 安全(标签转字符串)
p What's up <escaped> 1
p= 'What s' + ' up <escaped> 2'
p
= 'What s up <escaped> 3'
p!= 'What s' + ' up <escaped> 4'
p
!= 'What s up <escaped> 5'

  IE条件注释:

<!--[if IE 8]>
p This is IE 8
<![endif]-->

  extends : 

//- layout.jade
doctype html
html
head
block title
title Default title
body
block content
//- index.jade
extends ./layout.jade block title
title Article Title block content
h1 My Article
<!doctype html>
<html>
<head>
<title>Article Title</title>
</head>
<body>
<h1>My Article</h1>
</body>
</html>

  filters :

filters是编译时候运行,所以不能使用动态内容,在服务器端编译。(需要先安装markdown模块)

:markdown
# Markdown I often like including markdown documents.
script
:coffee
console.log 'This is coffee script'
<h1>Markdown</h1>
<p>I often like including markdown documents.</p>
<script>console.log('This is coffee script')</script>

  include : 

include ./includes/foot.jade
include:markdown article.md
//可以是js css等文件 也可以是Filtered Text

  Mixins : 创建可重复使用的jade块

mixin article(title)
.article
.article-wrapper
h1= title
if block //block关键字,就是块
block
else
p No content provide
+article('Hello world')
+article('Hello DongGuang')
p This is my
p Hometown
mixin link(href, name)
//- attributes == {class: "btn"}
a(class!=attributes.class, href=href)= name +link('/foo', 'foo')(class="btn")

  直接输出文本: 前面加 |  例如:|Plian text can include <strong>html<strong> 否则会把Plian当做标签<Plian></Plian>

  子集标签除了缩进,还支持a: span: em 这种写法,冒号后面必须加空格。

  

Jade学习笔记的更多相关文章

  1. jade 学习笔记 - gulp 自动编译

    实时监控   jade -P -w .\test1.jade sublime 分栏,可以看到实时修改情况     1. 元素写法 doctype html <!--[if IE8]>< ...

  2. pug(jade) 学习笔记

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

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

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

  4. Nodejs学习笔记(三)——一张图看懂Nodejs建站

    前言:一条线,竖着放,如果做不到精进至深,那就旋转90°,至少也图个幅度宽广. 通俗解释上面的胡言乱语:还没学会爬,就学起走了?! 继上篇<Nodejs学习笔记(二)——Eclipse中运行调试 ...

  5. Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例

    目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装项目其它需要包 清除冗余文件并重新规划项目目录 配置文件 规划示例路由,并新建相关文件 实现数据访问和业务逻辑相关方法 编写mys ...

  6. [转]Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例

    本文转自:https://www.cnblogs.com/zhongweiv/p/nodejs_koa2_webapp.html 目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装 ...

  7. Nodejs学习笔记(十五)—Node.js + Koa2 构建网站简单示例

    前言 前面一有写到一篇Node.js+Express构建网站简单示例:http://www.cnblogs.com/zhongweiv/p/nodejs_express_webapp.html 这篇还 ...

  8. VueJs 学习笔记

    VueJs学习笔记 参考资料:https://cn.vuejs.org/ 特效库:TweenJS(补间动画库)  VelocityJS(轻量级JS动画库) Animate.css(CSS预设动画库) ...

  9. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

随机推荐

  1. Install FFmpeg, Mplayer, Mencoder, MP4Box, Flvtool2

    You can use the following tutorial to install ffmpeg and other video modules in your centos server.F ...

  2. mongodb 增加用户以及认证用户

    test>use admin switched to db admin admin>db.addUser('yshy','yshy') { "user" : " ...

  3. C51 库函数

    C-51软件包的库包含标准的应用程序,每个函数都在相应的头文件(.h)中有原型声明.如果使用库函数,必须在源程序中用预编译指令定义与该函数相关的头文件(包含了该函数的原型声明).例如:#include ...

  4. PowerShell 转码函数 Default->UTF8

    $chs='你好' function converToUft8($str){ $bs=[System.Text.Encoding]::Default.GetBytes($str); $u8Char=[ ...

  5. json与jsonp ajax

    今天在网上找了一下资料,发现这篇文章总结得好,果断转了:http://blog.csdn.net/superhosts/article/details/9057301

  6. 好吧,使用sql实现Dijkstra算法

    我本来不想做这么蛋疼的事情的,可是更蛋疼的是我看了王大神的博客然后中毒了!我发誓再!不!看!了!不过问题本身还是有一点意思的,正好学过图论没有实现过dijkstra,刚好在慕课上又学了一点pl/sql ...

  7. Java Hibernate 之 Session 状态

    Session接口是Hibernate向程序提供操纵数据库的最主要接口,是单线程对象,它提供了基本的保存.更新.删除和查询方法.它有一个缓存,保存了持久化对象,当清理缓存时,按照这些持久化对象同步更新 ...

  8. 黑马程序员_<<IO流基本操作(Writer,Reader)>>

    --------------------ASP.Net+Android+IOS开发..Net培训.期待与您交流! -------------------- 1.概述 硬盘之间的文件的传输,硬盘中文件的 ...

  9. .Net词汇表中常见缩略语汇总

    .Net中存在大量的专业词汇(详细列表,请参考:Visual Studio 和 .NET Framework 词汇表),其中很多词汇常常采用缩略语的形式被大量使用. 在阅读.Net书籍或网络资料时,便 ...

  10. http断点续传原理:http头 Range、Content-Range

    所谓断点续传,也就是要从文件已经下载的地方开始继续下载.在以前版本的 HTTP 协议是不支持断点的,HTTP/1.1 开始就支持了.一般断点下载时才用到 Range 和 Content-Range 实 ...