Pug入門


Pug是一款健壯、靈活、功能豐富的HTML模板引擎,專門為 Node.js 平台開發。Pug是由Jade 改名而來。

是一種通過縮進(表示標簽間的嵌套關系)的方式來編寫代碼的過程,在編譯的過程中,不需要考慮標簽是否閉合的問題。可以加快寫代碼速度,也為代碼復用提供了便捷。


優點:

1、無需結束標簽

2、強制縮進

3、代碼復用和維護

4、標簽寫法與CSS相同

 

搭建pug環境:

1、下載node.js和 npm 

2、下載 pug , 命令:npm install pug-cli -g 

檢查:

 

 

 

/********************************************************屬性基本用法***********************************************************************/

a(href='baidu.com') 百度
等價於-->
<a href="baidu.com">百度</a>


a(class='button', href='baidu.com') 百度
等價於-->
<a class="button" href="baidu.com">百度</a>

 

Js表達式的形式

//- 已登錄
- var authenticated = true
body(class=authenticated ? 'authed' : 'anon')
等價於-->
<body class="authed"></body>

 

多行屬性

input(
  type='checkbox'
  name='agreement'
  checked
)

等價於-->
<input type="checkbox" name="agreement" checked="checked" />

 

屬性嵌入:

- var url = 'pug-test.html';
a(href='/' + url) 鏈接
|
|
- url = 'https://example.com/'
a(href=url) 另一個鏈接


等價於-->
<a href="/pug-test.html">鏈接</a>
<a href="https://example.com/">另一個鏈接</a>

 

 

布爾值屬性:

input(type='checkbox' checked)
|
|
input(type='checkbox' checked=true)
|
|
input(type='checkbox' checked=false)
|
|
input(type='checkbox' checked=true.toString())

等價於-->

<input type="checkbox" checked="checked" />
<input type="checkbox" checked="checked" />
<input type="checkbox" />
<input type="checkbox" checked="true" />

 

 樣式屬性:

style(樣式)屬性可以是一個字符串(就像其他普通的屬性一樣)還可以是一個對象

a(style={color: 'red', background: 'green'})
等價於-->
<a style="color:red;background:green;"></a>

 

類屬性:

class(類)屬性可以是一個字符串(就像其他普通的屬性一樣)還可以是一個包含多個類名的數組

- var classes = ['foo', 'bar', 'baz']
a(class=classes)
|
|
//- the class attribute may also be repeated to merge arrays
a.bang(class=classes class=['bing'])

等價於-->
<a class="foo bar baz"></a>
<a class="bang foo bar baz bing"></a>

 

它還可以是一個將類名映射為 true 或 false 的對象,這在使用條件性的類的時候非常有用。

 
- var currentUrl = '/about'
a(class={active: currentUrl === '/'} href='/') Home
|
|
a(class={active: currentUrl === '/about'} href='/about') About

等價於-->
<a href="/">Home</a>
<a class="active" href="/about">About</a>

 

 

/*******************************************************字面值************************************************************/

類的字面值:

類可以使用 .classname 語法來定義:
a.button
等價於-->
<a class="button"></a>

考慮到使用 div 作為標簽名這種行為實在是太常見了,所以如果您省略掉標簽名稱的話,它就是默認值:
.content
等價於--->
<div class="content"></div>

id的字面值:

ID 可以使用 #idname 語法來定義:
a#main-link
等價於-->
<a id="main-link"></a>

考慮到使用 div 作為標簽名這種行為實在是太常見了,所以如果您省略掉標簽名稱的話,它就是默認值:
#content
等價於-->
<div id="content"></div>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM