Pug学习
1. 理解
Pug是一款健壮、灵活、功能丰富的HTML模板引擎,专门为 Node.js 平台开发。Pug是由Jade 改名而来。
是一种通过缩进(表示标签间的嵌套关系)的方式来编写代码的过程,在编译的过程中,不需要考虑标签是否闭合的问题。可以加快写代码速度,也为代码复用提供了便捷。
2. 命令行
将pug格式转化为HTML的时候输入命令pug -P xxx.pug
自动更新 pug -P -w xxx.pug
有自定义目录的需求,则需要设置-o参数
3. 结构语法
结构语法:
1. 标签:HTML 代码的树状结构
2. 属性:紧跟着标签写在括号里,用,隔开(不加逗号也是允许的),class和id可以直接写在元素后面,例如#pug.pug表示的就是一个div标签
3. 内容:
a. 直接在标签后面加文本,注意文本和标签之间要有空格
b. 在标签的下一行,对每一行内容前面加管道符号(|)
c. 大的纯文本块只需要在标签后面紧接一个点 . (在标签和点之间不要有空格)。块内的纯文本内容必须缩进一层
注意:空格控制
Pug 删掉缩进,以及所有元素间的空格。
Pug 保留符合以下条件的元素内的空格:
一行文本之中所有中间的空格;
在块的缩进后的开头的空格;
一行末尾的空格;
纯文本块、或者连续的管道文本行之间的换行。
4. 注释:
// 单行注释
//- 非缓冲注释
//(换行) 给模板写的块注释
<!--[if IE 8]> … <![endif]--> 条件注释
5. 变量
(1).变量赋值:
- var text = pug
调用:
[内容变量] :div=text或div#{text}
[属性赋值]:value=text
(2). 变量获取:
a. 命令行直接赋值 pug ./views/index.pug -P -w --obj "{'text':'pug'}"
b. 新建一个JSON文件,写入{"text":"study pug"},然后通过命令行
pug ./views/index.pug -P -w -O ./views/text.json
(3).变量转义
转义div #{cont} 或 div=cont
不转义 div!=cont 或 div !{cont}
输出原内容div \#{cont} 或 div \!{cont}
6. 循环
a. for循环: 必须加 – 标识
b. each循环:– 标识可以省略, each value,key in test中的value和key不能换位置
c. while 循环
d. 条件循环:if else 判断 和 case 判断
7. mixin混入
是一种允许您在 Pug 中重复使用一整个代码块的方法。
//mixin 定义
mixintest
p study pug
//mixin 调用
+test
可传参数、嵌套、内联代码块、传递属性(有两种方法,第一种可以通过p(class=attributes.class)取到特定的属性,第二种可以通过p&attributes(attributes)取到全部的属性)、传递不确定数量的参数(用…items 表示)
8. include包含
解决的是文件和文件之间,文件和区块之间代码复用的问题,可以引入.pug和原生的.html文件(记得带上后缀)。
9. 继承与扩展
解决的是子文件和父文件之间的代码复用问题,子文件的代码可以覆盖和扩展父文件的代码
//父文件.pug
block test
代码块1
//子文件.pug
extends 父文件.pug
block test
代码块2
//那在最后输出的时候应该输出代码块2的内容