介绍
最近,到了新的公司上班,接触到的HTML编写方式为使用jade
。习惯了手写HTML硬编码的我,一时之间还不太适应这种快速高效的方式。
我们先通过一个例子来讲述一下这款工具的牛逼之处吧!
1 | div.container#main Content |
经过工具编译后,以上代码将会输出:1
2<div class="container" id="main">Content</div>
<a class="btn" href="javascript:;" title="link">Button</a>
是不是有种简单粗暴的即视感?
基本语法
基本属性的写法如下:
每行开始的第一个单词将会作为HTML标签名,如果没有,则默认为div
。
类名和ID,同CSS选择器的语法——类名为.
号开始,如果有多个类名,叠加展示即可。如section.index.tips
;ID为#
标识。
HTML元素的其他属性可以写在跟在后面的括号()
之内。多个属性,可以使用逗号,
或者空格隔开。
元素内的文本则以一个空格后直接书写。
Jade采用对缩进敏感的语法,来划分HTML的层次结构。
1 | ul |
将会被编译成:1
2
3
4
5<ul>
<li>A<span>text</span></li>
<li>B</li>
<Li>C</Li>
</ul>
循环
jade
支持循环。比如:1
2- for (var i = 0; i < 3; i++)
li item
将会被编译成:1
2
3<li>item</li>
<li>item</li>
<li>item</li>
继承
jade
使用extends
来继承代码片段,继承可以修改代码片段。
页面中使用block
标识符,可以指定一个代码片段的名字,比如名字设为name
。在需要使用该代码片段的地方,直接使用block name
即可。
文件包含
jade
可以使用include
语法实现高度复用代码。将这些代码片段保存到不同的文件中,然后在需要的地方进行引入即可。
混合宏
mixin
是jade
提供的另一个方法,可以很大程度提升HTML编写的效率。语法类似于sass
和less
中的混合宏。
混合宏具有高度复用、解耦、可读、可扩、可维护等特点,是众多预编译语言的共同特点。
jade
中使用mixin
标识符进行混合宏的创建,在需要的地方使用+
标识符进行调用即可。
1 | mixin list |
将会被编译成:1
2
3
4
5
6
7
8
9
10<ul>
<li>foo</li>
<li>bar</li>
<li>baz</li>
</ul>
<ul>
<li>foo</li>
<li>bar</li>
<li>baz</li>
</ul>
支持参数的传入:1
2
3
4
5
6mixin card(name)
li.card= name
ul
+card('A')
+card('B')
+card('C')
将会被编译成:1
2
3
4
5<ul>
<li class="card">A</li>
<li class="card">B</li>
<li class="card">C</li>
</ul>
还可以使用余参:1
2
3
4
5
6mixin list(id, ...items)
ul(id=id)
each item in items
li= item
+list('example', 1, 2, 3, 4, 5)
将会被编译成:1
2
3
4
5
6
7<ul id="example">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
jade
的入门级介绍到这里就告一段落,还有一些高级语法,可以参考官方文档。