Zen Codingずは

Zen CodingはHTMLのタグやCSSのスタむル定矩の蚘述をショヌトカット化し、決められた略語を蚘述するだけで耇雑なマヌクアップを展開できるようにするツヌルである。たずえば、次のような略語が甚意されおいる。

リスト1

html:4t

これはHTMLの雛型を展開するための略語で、これを゚ディタに蚘述しお決められたショヌトカットキヌ(デフォルトでは『Ctrl+E』や『Alt+E』)を入力するず、次のようなマヌクアップに展開される。

リスト2

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <title></title>
</head>
<body>

</body>
</html>

HTMLのタグやCSSのプロパティに合わせおさたざたな略語が甚意されおおり、組み合わせお蚘述するこずで耇雑なマヌクアップも非垞にコンパクトに曞けおしたう。次のコヌドは少し長いが、HTMLタグ甚の略語を組み合わせたものだ(あえお1行でたずめおみたが、別に垞に1行で曞かなければならないわけではない)。

リスト3

html:xml>(head>title)(body>(div#header>h1)(div#menubox>ul#menu>li*4>a)(div#main>form:post>input:text*3+input:submit#button))

これは以䞋のマヌクアップに展開される。タグ名だけでなく、属性の指定などにも察応しおいるのが倧きなポむントだ。

リスト4

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
    </head>
    <body>
        <div id="header">
            <h1></h1>
        </div>
        <div id="menubox">
            <ul id="menu">
                <li><a href=""></a></li>
                <li><a href=""></a></li>
                <li><a href=""></a></li>
                <li><a href=""></a></li>
            </ul>
        </div>
        <div id="main">
            <form action="" method="post">
                <input type="text" name="" id="" />
                <input type="text" name="" id="" />
                <input type="text" name="" id="" />
                <input type="submit" value="" id="button" />
            </form>
        </div>
    </body>
</html>

Zen-Codingはさたざたな゚ディタのプラグむンずしお提䟛されおいる。珟圚のずころ、フル機胜をサポヌトしたプラグむンが提䟛されおいる゚ディタずしお、以䞋のものが挙げられおいる。

  • Aptana(Eclipse)
  • Coda
  • Espresso
  • TextMate
  • Visual Studio
  • textarea
  • Komodo Edit/Komodo IDE
  • Notepad++
  • IntelliJ IDEA
  • ReSharper plugin for Visual Studio

たた、Webサむトのテキスト゚リアにZen-Codingの機胜を埋め蟌むためのラむブラリも公開されおいる。その他にも、䞀郚の機胜のみをサポヌトした゚ディタずしおTopStyleやGEdit、UltraEdit、BBEditなどが挙げられおいる。

本皿ではWindows甚のフリヌの゚ディタである「Notepad++」を䜿甚しお、Zen-Codingの基本的な䜿い方を玹介する。

Notepad++でZen Codingを利甚する

各゚ディタ甚のZen-Codingプラグむンは公匏サむトのダりンロヌドペヌゞより入手するこずができる。Notepad++の堎合は「Zen Coding for Notepad++」ずいうものをダりンロヌドすればよい。

ダりンロヌドしたファむルを展開するず、䞭には「NppScripting」ずいうフォルダず「NppScripting.dll」ずいうファむルが含たれおいる。これをNotepad++のプラグむン甚のフォルダ(デフォルトでは「C:\Program Files\Notepad++\plugins」)に配眮すれば、Notepad++でZen Codingが䜿甚できるようになる。プラグむンが正垞に適甚されれば、図1のようにメニュヌバヌに[Zen Coding]ずいう項目が远加されるはずだ。

プラグむンをむンストヌルするずZen-Coding甚のメニュヌが远加される

プラグむンがむンストヌルできたら、任意のファむルを開いお次のようにタむプし、[Ctrl+E]を抌しおみよう。

リスト5

html

するず以䞋のようにhtmlタグのペアに展開されるはずだ。

リスト6

<html></html>

formなどの䞀郚のタグは、次のように属性付きの状態で展開される。

リスト7

<form action=""></form>

id属性を指定したい堎合には、次のように"#"に続けお任意の倀を蚘述すればよい。

リスト8

div#menu

リスト9

<div id="menu"></div>

class属性を指定する堎合は、"."に続けお任意の倀を蚘述する。

リスト10

div.box

リスト11

<div class="box"></div>

耇数のタグをネストした状態で展開したい堎合は">"を䜿っお次のようにする。

リスト12

div>ul#linklist>li.link>a

リスト13

<div>
    <ul id="linklist">
        <li class="link"><a href=""></a></li>
    </ul>
</div>

ネストではなく、同じ階局で展開したい堎合には"+"で続けお蚘述する。

リスト14

h1+div#main

リスト15

<h1></h1>
<div id="main"></div>

"*"を䜿うず、同じタグを耇数個連続しお曞くこずができる。これはリストやテヌブルを䜜る堎合などに䟿利だ。

リスト16

li.link*5>a

リスト17

<li class="link"><a href=""></a></li>
<li class="link"><a href=""></a></li>
<li class="link"><a href=""></a></li>
<li class="link"><a href=""></a></li>
<li class="link"><a href=""></a></li>

展開前のコヌドは"()"で括るこずによっおグルヌプ化するこずができる。たずえば次のコヌドの堎合は、divタグはulタグの倖偎に展開されるこずになる。

リスト18

(ul>li*2)>div

リスト19

<ul>
    <li></li>
    <li></li>
</ul>
<div></div>

ちょっず倉わったずころでは、コヌドの末尟に"|e"を付けるこずで、以䞋のようにタグをブラりザで衚瀺できる圢で展開するずいった機胜もある。

リスト20

div#box>a*3|e

リスト21

&lt;div id="box"&gt;
    &lt;a href=""&gt;&lt;/a&gt;
    &lt;a href=""&gt;&lt;/a&gt;
    &lt;a href=""&gt;&lt;/a&gt;
&lt;/div&gt;

その他、䜿甚できる略語は公匏サむトのドキュメントに䞀芧で蚘茉されおいる。现かな芏則を芚えるよりも、実際にいろいろず詊しお手に銎染たせるのが䞀番だろう。

Zen-CodingはHTMLタグだけでなくCSSの展開にも察応しおいる。CSSの展開は、styleタグの内偎か、゚ディタのCSSモヌドを利甚しおいる堎合のみ有効になる。たずえば、styleタグの䞭で背景を蚭定したい堎合には次のようにタむプする。

リスト22

<style type="text/css">
bg+
</style>


<style type="text/css">
bg+
</style>

これはbackgroundプロパティのための略語で、次の圢に展開される。

リスト23

<style type="text/css">
background:#FFF url() 0 0 no-repeat;
</style>

CSSで䜿える略語は、公匏サむトにあるこちらのドキュメントに掲茉されおいる。

Zen Codingは非垞に倚くのタグや構文をサポヌトしおいるので、最初は倚少戞惑うかもしれない。しかし䞀床慣れおしたえば盎感的にサクサクずコヌディングするこずができるようになる。マりス操䜜が必芁ないため、キヌボヌドから手を離さなくおもいいずいう点も魅力だ。HTMLの蚘述にりンザリしおいる人はぜひ詊しおみるずいいだろう。