Zen Coding 是個(gè)文本編輯器的插件。在使用Zen Coding的文本編輯器中,可以用簡(jiǎn)短的代碼來(lái)書(shū)寫(xiě)常規(guī)的HTML代碼,這個(gè)工具極大的簡(jiǎn)化了HTML編寫(xiě)。
例如以下HTML代碼:
代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
</head>
<body>
<div id="header">
<div id="logo"></div>
<ul id="nav">
<li class="item-1"><a href=""></a></li>
<li class="item-2"><a href=""></a></li>
<li class="item-3"><a href=""></a></li>
<li class="item-4"><a href=""></a></li>
<li class="item-5"><a href=""></a></li>
</ul>
</div>
</body>
</html>
通過(guò)Zen Coding,一行即可:
代碼如下:
html:xt>div#header>div#logo+ul#nav>li.item-$*5>a
這里是在線DEMO(快捷鍵不起作用的,請(qǐng)檢查可能的快捷鍵沖突。如搜狗輸入法會(huì)占用“Ctrl+,”)
Zen Coding的縮寫(xiě)規(guī)則有些類(lèi)似CSS選擇器:
id和class:如 div#main.list.item 表示的是<div id="main" class="list item"></div>
其他屬性可以這樣:div[title], a[title="Hello world" rel], td[colspan=2]
重復(fù)元素:li*3將輸出3個(gè)<li></li>
重復(fù)元素?cái)?shù)字序號(hào):li.list-$$*2將被擴(kuò)展成 <li class="list-01"></li><li class="list-02"></li> 。多個(gè)$放在一起的時(shí)候,前面的$將作為0來(lái)填補(bǔ)位數(shù)。
可以用括號(hào)來(lái)分組:div#page>(div#header>ul#nav>li*4>a)+(div#page>(h1>span)+p*2)+div#footer
Filters支持,使用不同的參數(shù),將得到完全不同的結(jié)果
其他主要功能
默認(rèn)的除了HTML/XML/XSL/CSS/HAML縮寫(xiě)外,Zen Coding 還提供了其他一些方便代碼編寫(xiě)的功能。
簡(jiǎn)寫(xiě)包裹(Wrap with Abbreviation)。
根據(jù)光標(biāo)的位置或文本選擇情況,輸入代碼簡(jiǎn)寫(xiě)后得到想要的最終代碼。
代碼如下:
You walk into the room
With your pencil in your hand
You see somebody naked
And you say, Who is that man?
You try so hard
But you don't understand
Just what you'll say
When you get home
Because something is happening here
But you don't know what it is
Do you, Mister Jones?
以上文字用“ul>li*>span”包裹后會(huì)得到下面的代碼:
代碼如下:
<ul>
<li><span>You walk into the room</span></li>
<li><span>With your pencil in your hand</span></li>
<li><span>You see somebody naked</span></li>
<li><span>And you say, Who is that man?</span></li>
<li><span>You try so hard</span></li>
<li><span>But you don't understand</span></li>
<li><span>Just what you'll say</span></li>
<li><span>When you get home</span></li>
<li><span>Because something is happening here</span></li>
<li><span>But you don't know what it is</span></li>
<li><span>Do you, Mister Jones?</span></li>
</ul>
標(biāo)簽匹配(Balance Tag)
ZC(Zen Coding)提供了一個(gè)快速選擇元素內(nèi)所有內(nèi)容的方法
編輯點(diǎn)(Edit Point)
由ZC擴(kuò)展出來(lái)的代碼是沒(méi)有內(nèi)容的,此功能則可以快速的定位到內(nèi)容編輯點(diǎn)處
最后
常見(jiàn)的IDE如Ecliplse/Aptana,Notepad++,TextMage,Dreamweaver,UltraEdit,Visual Studio等,都已經(jīng)有官方或者第三方的插件支持。實(shí)際上由于Zen Coding的核心代碼有Javascript和Python兩種語(yǔ)言版本,在引入了相應(yīng)的JS文件后,瀏覽器中的文本編輯區(qū)域都可以使用Zen Coding了。