官網案例地址 http://naltatis.github.io/jade-syntax-docs/html
1. 基本用法vue
doctype html
html
head
title my jade template
body
-var name = "Bob"
h1 Hello #{name}
定義了一個變量name, 而後使用#{name}格式來讀取變量name值node
變量定義的語法 - var variable = valuereact
標籤內容放在標籤名後面,用一個空格隔開git
2. id & classesgithub
#content
.block
input#bar.foo1.foo2
id使用# class使用. 針對div能夠省略掉div標籤名less
3. Nesting 內聯代碼spa
ul#books
li
a(href="#book-a") book A
li
a(href="#book-b") book B
// 等價於下面的內聯寫法
ul#books
li: a(href="#book-a") book A
li: a(href="#book-b") book B
內聯寫法能夠節省代碼行數code
4. 大段文本htm
// 文本中使用變量
- var book = {"name": "Hello", price: 12.99}
h1 foo
h2= book.name
h3 "#{book.name}" for #{book.price} $
解析變量的方式,通常情形使用 #{} 的語法形式。 若是該標籤只有變量一個值,能夠使用 tag= 的語法來直接解析。
針對p標籤中的大段文本,使用p.表示後面的內容強制解析,在單獨某行前面使用|表示這一行須要解析。須要注意的是,若是使用了原生HTML標籤,這表示強制顯示HTML標籤格式內容
p. foo bar hello world <span>hello jade<span> p | foo bar | hello world <span>hello jade<span>
5. 變量建立和使用
// 使用 - var variable 的語法進行變量聲明
- var foo = "hello react"
h1= foo
// 變量聲明也能夠使用字符串拼接
- var book = {name: "hello"}
- var foo = book.name + 'world'
h1= foo
#{name} === = name
!{name} === != name
6. 迴避變量轉義
使用!{name}或者!=name能夠避免特殊字符轉義,如 < > 等等
- var name = "Hello <em>World</em>" li Hello <em>World</em> li= name li!=name // !=name 表示特殊字符不會轉義,所以會顯示 <>
7. 標籤屬性
input(type="text", placeholder="your name")
- var type = "text"
- var name = "bob"
input(type=type, value="Hello #{name}")
input(checked=true, disabled=false)
input(checked)
8. 文檔註釋
單行註釋 //
多行註釋 // 可是要放在多行代碼塊前面一行且高出一級
不可見註釋 //- 生成後的html文件中註釋不可見
// single line comment
//- invisible single line comment
// block comment
h1 hello world
p how to protect envrionment
//- invisible block line comment
h2 how are you?
9. 流程控制--條件判斷
- var name = "bob"
if name == 'bob'
h1 Hello #{name}
else
h1 My name is #{name}
// unless expr === if(!(expr))
- var errors = false
unless errors
p no errors
10. 流程控制--for each循環控制
- var books = ["nodejs in action", "vue in action", "react in action"]
select
each book, i in books
option(value=i) Book #{book}
// 生成一個select表單元素
- var books = []
ul
for book in books
li= book
else
li sorry, no books
for 能夠和 else 一塊兒使用
11. 流程控制--case多重選擇
- var name = "Bob"
case name
when "Bob"
p Hi Bob!
when "Alice"
p Howdy Alice!
default
p Hello #{name}!
case 和 when 一塊兒使用
12. mixin
// 帶參數的mixin
mixin book(name, price)
li #{name} for #{price} $
ul#books
+book("Book A", 12.99)
+book("Book B", 5.99)
mixin的使用方法就是前面加上+
// 帶參數,帶標籤屬性的mixin mixin book(name) div&attributes(attributes)=name +book("Book A")#first +book("Book B")(title="book b") +book("Book C").last