PugJS是一款HTML模板(前身是jade)。
PugJS最大的特点是用类似缩进的方式来表示HTML(或者XML)的模板,下面是一个例子:
ul
li Item A
li Item B
li Item C
上面的模板经过处理之后会变成:
<ul>
<li>Item A</li>
<li>Item B</li>
<li>Item C</li>
</ul>
当然,PugJS还支持变量、条件控制、循环控制等模板中常见的功能。将上面的例子改成循环:
- var items = ['A', 'B', 'C']
ul
each item in items
li= "Item " + item
PugJS也可以用来生成XML代码:
doctype xml
person Grumpy
的输出是:
<?xml version="1.0" encoding="utf-8" ?>
<person>Grumpy</person>
PugJS中有一些保留字,不能在模板中直接使用:
default-name Grumpy
上面的模板会产生错误:
index.pug:1:8
> 1| default-name Grumpy
--------------^
2|
default should not have an expression
这种情况,只需要改用表达式语法即可:
#{"default-name"} Grumpy
其他
- 在PugJS里面写注释可以有两种,一种是
//
,会被翻译成HTML的注释<!-- -->
。另一种是//-
,不会影响生成的内容。参考Comments in Jade/pug - 另一个生成HTML的好工具是Emmet — the essential toolkit for web-developers。
(完)
2020-07-04更新
pug-cli,从命令行控制pug模板的生成。
html2pug,可以将HTML转为PUG:html2pug < example.html > example.pug
。
vim-pug是Vim的pug语法文件。
(更新完)
2021-06-07更新
使用pug -w . -o out -P -E xml
可以监控某个文件夹并自动生成目标代码。
(更新完)
2021-07-09更新
https://en.wikipedia.org/wiki/Off-side_rule:
Peter Landin, in an article titled “The Next 700 Programming Languages”, defined the off-side rule thus: “Any non-whitespace token to the left of the first such token on the previous line is taken to be the start of a new declaration."[3]
(更新完)