pug是一款HTML模板引擎,用于快速生成对应的html语句
Pug教程-从入门到入坟_.pug-CSDN博客
入门指南 | Pug 模板引擎中文文档 | Pug中文网
使用插件(格式化pug)
基本用法 安装 1 2 npm install pug -g npm install pug-cli -g
使用
基本语法 结构语法 a) 标签名(属性名=”属性值”) 标签内容 pug语句 html语句
1 2 3 4 5 6 7 8 9 10 11 12 13 14 //- 此行定义了文档类型为HTML5,这对浏览器渲染网页至关重要。 doctype html html(lang='en') head meta(charset='utf-8') meta(name='viewport', content='width=device-width, initial-scale=1') body //- 单行属性标签 a(href='https://www.google.com') 谷歌 //- 多行属性标签 input(type='text' placeholder='请输入内容' )
1 2 3 4 5 6 7 8 9 10 11 12 13 <!DOCTYPE html > <html lang ="en" > <head > <meta charset ="utf-8" > <meta name ="viewport" content ="width=device-width, initial-scale=1" > </head > <body > <a href ="https://www.google.com" > 谷歌</a > <input type ="text" placeholder ="请输入内容" > </body > </html >
b) 分支条件 pug语句 html语句
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 doctype html html(lang="en") head meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1.0") body //- 声明变量 - var friends = 10 //- 使用case语句 case friends when 0 p You have no friends! when 1 p You have 1 friend! default //- 使用变量的语法#{变量名} p You have #{friends} friends!
1 2 3 4 5 6 7 8 9 10 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <p>You have 10 friends!</p> </body> </html>
c) 循环&&条件语句 pug语句 html语句
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 //- for循环定义无序列表 - for (var i = 0; i < 3; i++) li item hr //- for循环变量列表 - var list = ['apple', 'banana', 'orange'] each item in list //- li的文本内容为item变量的值 li=item hr //- 条件语句(如果不加-,将会把变量声明在代码中打印出来) - var a = 5 //- 下面的a=10将不会被执行 var a = 10 - if (a == 10) p true - else if (a == 5) p false - else p undefined hr ul //- each循环遍历 each val in [1, 2, 3, 4, 5] li= val hr - var n = 0; ul //- while循环 while n < 4 li= n++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 <li > item</li > <li > item</li > <li > item</li > <hr /> <li > apple</li > <li > banana</li > <li > orange</li > <hr /> <var > a = 10</var > <p > false</p > <hr /> <ul > <li > 1</li > <li > 2</li > <li > 3</li > <li > 4</li > <li > 5</li > </ul > <hr /> <ul > <li > 0</li > <li > 1</li > <li > 2</li > <li > 3</li > </ul >
d) 转义输出
如果代码前面加-
表示这部分代码不进行输出
pug语句 html语句
1 2 3 4 5 6 7 8 //- `=`表示转义输出 p= '这个代码被 <转义> 了!' //- `!=`表示不进行转义输出 p!= '这个代码被 <转义> 了!' //- 默认是不进行转义输出的 p 这个代码被 <转义> 了!
1 2 3 <p > 这个代码被 < 转义> 了!</p > <p > 这个代码被 <转义 > 了!</p > <p > 这个代码被 <转义 > 了!</p >
e) id,class
#
表示id名
.
表示class名
pug语句 html语句
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 //- 生成一个id为user的div标签(默认是div) #user hr div //- 生成一个id为user的a标签 a#user //- 生成一个id为content,class为user的span元素 span#content.user span.user#content //- 有.的情况下再.后面的内容被识别为文本 p.description. 用户没有添加描述。 不写点什么吗……
1 2 3 4 5 6 7 8 9 10 11 <div id="user"></div> <hr /> <div> <a id="user"></a> <span class="user" id="content"></span> <span class="user" id="content"></span> <p class="description"> 用户没有添加描述。 不写点什么吗…… </p> </div>
f) mixin pug语句 html语句
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 //- 定义 mixin list ul li foo li bar li baz //- 使用 +list +list mixin article(title) .article .article-wrapper h1= title if block block else p 没有提供任何内容。 +article('Hello world') +article('Hello world') p 这是我 p 随便写的文章
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 <ul > <li > foo</li > <li > bar</li > <li > baz</li > </ul > <ul > <li > foo</li > <li > bar</li > <li > baz</li > </ul > <div class ="article" > <div class ="article-wrapper" > <h1 > Hello world</h1 > <p > 没有提供任何内容。</p > </div > </div > <div class ="article" > <div class ="article-wrapper" > <h1 > Hello world</h1 > <p > 这是我</p > <p > 随便写的文章</p > </div > </div >
END 1 2 3 4 5 6 7 8 {% tabs tutorial %} <!-- tab pug语句--> <!-- endtab --> <!-- tab html语句--> <!-- endtab --> {% endtabs %}