EC studio EC studio デザインブログ

Zen-CodingでHTML/CSSコーディング作業の効率があがった人が増えてきたのではないかと思いますが、そこでさらにカスタマイズすることで効率化アップする方法を紹介します。

Zen-Codingではあらかじめ多くのHTML/CSSのショートコード、スニペットが登録されていますが、Zen-Codingを構成するファイルを少し修正するだけで、オリジナルのコードを登録することができます。
JavaScriptを触ることにはなりますが、JavaScriptを知らなくても大丈夫なぐらい簡単です。

zen_setting.jsに秘密がある

Zen-Codingをダウンロードすると、対応アプリケーションごとのファイルをダウンロードすることができますが、そのダウンロードしたファイルの中にはzen_setting.jsというファイルが存在しています。
実はその中に、省略コードやスニペットがすべて書き込まれています。
※アプリケーションによって、違う名前で存在する場合があります。
Textmateの場合は zen_settings.py になります。

このファイルの中に自分独自の記述を書き込んだり、既存のものを修正すればカスタマイズができます。

コードの種類

書込・修正ができる内容には2種類あります。

snippets・・・
スニペット。長い・複数行記述の場合はこちら。
abbreviations・・・
省略コード。短い・一行記述の場合はこちら。また特殊な書き方をすることで、省略コードの省略コード、みたいな書き方ができます。

上記は結構荒い説明ではありますが、そういった感覚で大丈夫です。
今回は前者のスニペットとして追加する方法を解説します。

よく使うコードをスニペット登録する

あまりHTMLでスニペット化をする例は少ないので、CSSでのスニペットを追加します。

zen_setting.js 21行目から

JavaScript:
  1. 'css': {// 21行目
  2.         'snippets': {
  3.             "@i": "@import url(|);",
  4. // ~省略~~~~~~~~~~~~~~~~~~~~~~~~~~
  5.             "pgba:l": "page-break-after:left;",
  6.             "pgba:r": "page-break-after:right;",
  7.             "orp": "orphans:|;",
  8.             "wid": "widows:|;"// 492行目
  9.         }// 493行目

これがCSSのスニペットが記述されているところです。
スニペットとして定型文登録したい内容を追加しましょう。

例えば、使われる頻度が多いであろう「Clearfix」のコードを登録します。
下記はClearfixのCSSサンプルです。

CSS:
  1. .clearfix {
  2.      zoom: 1;/*for IE 5.5-7*/
  3. }
  4. .clearfix:after {/*for modern browser*/
  5.      content: “.”;
  6.      display: block;   
  7.      height: 0px;
  8.      clear: both;
  9.      line-height: 0;
  10.      visibility: hidden;
  11. }

※コードの参照元:http://kennsu.jp/2008/11/cssclearfix.html

このコードを登録したければ、下記コードをzen_setting.js の492行目と493行目に差し込みます。

JavaScript:
  1. "wid": "widows:|;",// ←の","を忘れないようにする
  2.             'clearfix': '.clearfix {\n' +
  3.                     '   zoom: 1;/*for IE 5.5-7*/\n' +
  4.                     '}\n' +
  5.                     '.clearfix:after {/*for modern browser*/\n' +
  6.                     '   content: “.”;\n' +
  7.                     '   display: block;\n' +
  8.                     '   height: 0px;\n' +
  9.                     '   clear: both;\n' +
  10.                     '   line-height: 0;\n' +
  11.                     '   visibility: hidden;\n' +
  12.                     '} '// 末行に","は不要

このような手順です。あとは CSSファイル内で
clearfixと書いて、Ctrl+Eすれば、コードが展開されます。

あまりJavaScriptなどに触れない人向けに、上記例で補足コメントをつけていますが、各行末の,(半角コンマ)の付け忘れや、最後の行には付けない、という文法にも気を付けるようにしましょう。

Aptanaの人はちょっと待った!

Aptanaの場合、親切にも「my_zen_setting.js」という独自のコードを追加するためのjsファイルが用意されています。
前述までの例は、直接元ファイルのソースを修正することになるので、それよりは別で管理されたファイルに書き込む方が問題は少ないですね。
書き方については、zen_setting.js を修正するのと同じです。

サンプルとして、僕のmy_zen_setting.jsの内容を書いておきます。
ダウンロードもできるようにしておくので、Aptanaを使っている方はそれをいれても良し、Aptana以外の方もzen_setting.jsを修正する参考にしてください。

内容は下記です。

  • CSS:clearfix
  • CSS:opacity(透過度指定スタイル)
  • HTML:jQuery 1.4.2
  • HTML:jQuery 1.3.2
  • HTML:Swfobject
  • HTML:Chrome Frame
  • HTML:html5.js
  • HTML:Microformats hCard
  • HTML:Microformats hReview

my_zen_setting.js

JavaScript:
  1. var my_zen_settings = {
  2.     'css': {
  3.         'snippets': {
  4.             'clearfix': '.clearfix {\n' +
  5.                     '   zoom: 1;/*for IE 5.5-7*/\n' +
  6.                     '}\n' +
  7.                     '.clearfix:after {/*for modern browser*/\n' +
  8.                     '   content: ".";\n' +
  9.                     '   display: block;\n' +
  10.                     '   height: 0px;\n' +
  11.                     '   clear: both;\n' +
  12.                     '   line-height: 0;\n' +
  13.                     '   visibility: hidden;\n' +
  14.                     '} ',
  15.             'opacity': 'filter: alpha(opacity=50);\n' +
  16.                     '-moz-opacity:0.5;\n' +
  17.                     'opacity:0.5;'
  18.         }
  19.     },
  20.     'html': {
  21.         'snippets': {
  22.             'lib:jq14': '<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>',
  23.             'lib:jq13': '<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>',
  24.             'lib:swf': '<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2.1/swfobject_src.js"></script>',
  25.             'lib:cf': '<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1.0.2/CFInstall.js"></script>',
  26.             'lib:swf': '<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2.1/swfobject_src.js"></script>',
  27.             'lib:html5': '<!--[if IE]>\n\t<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>\n<![endif]-->',
  28.             'mf:hc': '<div class="vcard">\n' +
  29.                 '   <a class="url" href="http://www.example.com/" title="family-namelast-name">\n' +
  30.                 '      <img style="float:left; margin-right:4px" src="photo" alt="family-namelast-name photo" class="photo" />\n' +
  31.                 '      <span class="fn n">\n' +
  32.                 '         <span class="family-name">family-name</span>\n' +
  33.                 '         <span class="given-name">last-name</span>\n' +
  34.                 '      </span>\n' +
  35.                 '   </a>\n' +
  36.                 '   <a class="email" href="mailto:email" title="send to family-namelast-name">email</a>\n' +
  37.                 '   <div class="adr">\n' +
  38.                 '      <span class="postal-code">123-4567</span>\n' +
  39.                 '      <span class="region">region</span>\n' +
  40.                 '      <span class="locality">locality</span>\n' +
  41.                 '      <span class="street-address">street-address</span>\n' +
  42.                 '   </div>\n' +
  43.                 '   <div class="tel">tel</div>\n' +
  44.                 '</div>',
  45.             'mf:hr': '<div class="hreview">\n' +
  46.                 '   <span class="item">\n' +
  47.                 '      <span class="fn">Name</span>\n' +
  48.                 '   </span>\n' +
  49.                 '   <span class="rating">3.5</span>\n' +
  50.                 '   <span class="reviewer">Smith</span>\n' +
  51.                 '   <span class="dtreviewed">2009-01-06</span>\n' +
  52.                 '   <span class="summary">"Delicious."</span>\n' +
  53.                 '</div>'
  54.         }
  55.     }
  56. };

my_zen_setting.js をダウンロードする

まとめ

Zen-Codingをさらに活用するために、是非これらの設定をおこなってみてください。
おすすめのHTML/CSSスニペットや省略コードがあれば取り入れていきたいので、よければブログへのコメントかTwitterまでメッセージをください。


関連した記事:
投稿者
カテゴリー
人気のエントリー
最近のエントリー
アーカイブ
Copyright© ChatWork, All Rights Reserved. secured by ESET.