详解Node.js模板引擎Jade入门(4)
注意: 要想使用Markdown过滤器,需要安装Markdown模块,以及Marked和Markdown NPM包。
13、case
- var coins = Math.round(Math.random() * 10) case coins when 0 p You have no money when 1 p You have a coin default p You have #{coins} coins!
14、Function mixin
如果你使用过sass又或者compass的mixin你肯定不会陌生,而Jade 里mixin的使用方法和它们基本相同。
声明的语法: mixin name(param, param2, …….)
调用: +name(data)
mixin row(items) tr each item, index in items td= item mixin table(tableData) table each row, index in tableData +row(row) - var node = [{name: "express"}, {name: "Jade"}, {name: "Handlebars"}] +table(node) - var js = [{name: 'backbone'}, {name: 'angular'}, {name: "emberJS"}] +table(js)
输出:
<table> <tr> <td>express</td> </tr> <tr> <td>Jade</td> </tr> <tr> <td>Handlebars</td> </tr> </table> <table> <tr> <td>backbone</td> </tr> <tr> <td>angular</td> </tr> <tr> <td>emberJS</td> </tr> </table>
15、include
include与引入JS和CSS外部文件很相似。它是自顶向下的方法: 在include其它文件的主文件里,我们决定要用什么。主文件会被首先处理(可以在主文件了定义数据locals),然后才会再接着处理主文件里所包含进来的子文件(子文件里可以使用主文件中定义的数据locals);
包含一个Jade模板,用include /path/filename.
例如,在文件A里:
include ./includes/header
注意: 这里不用给模板名以及路径添加双引号或者单引号。
再例如,从父目录开始查找:
include ../includes/footer
注意:不能再文件名和文件路径中使用变量,因为includes/partials是在编译时处理的,而不是在执行时。
对于使用Sass、Compass又或者Less的人这些事再熟悉不过的了。
16、extend
extend与include“唱对台戏”,正好相反,extend是一种自底向上的方法。它所包含的文件决定它要替换主文件中哪那一部分。
使用格式: extend filename 和 block blockname;
示例-1: 在文件file_a里:
block header p some default text block content p loading... block footer p copyright
示例-2: 在文件file_b里: