<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>nagomu.me</title>
<link>http://www.nagomu.me/</link>
<description>nagomu.meは、XHTML, CSS, Javascript, PHP, Movable TypeなどのCMSカスタマイズ等に関する情報を、ブログ形式で公開しています。</description>
<language>ja</language>
<copyright>This site is licensed under a C.C. * But, a part of contents is excluded.</copyright>
<lastBuildDate>Tue, 17 Aug 2010 23:53:30 +0900</lastBuildDate>
<item>
<title>Movable Typeをカスタマイズする時にデフォルトで採用したい（人もいるかもしれない）テーマ</title>
<description><![CDATA[<p>
	Movable TypeをCMSとしてカスタマイズする時って、「どうせ、コメントもトラックバックも使わないし、とりあえずデフォルトのテンプレートを削除するかな」から始めたりしませんか？<br />
	でも、ウィジェットとかも含め、ザクザク削除していくのは意外に面倒&hellip;&hellip;という訳で、カラっぽなテーマを作ってみました（もう、ありそうだけど）。</p>
]]><![CDATA[<p>
	テーマファイルは、下記からダウンロード出来ます。</p>
<p>
	<a class="button" href="/assets/file/2010/blank.zip">Download<br />
	</a></p>
<h2>
	使い方</h2>
<p>
	なんだか、テンプレートを書いたりしてる人に説明不要な感がありまくりますが、一応&hellip;&hellip;</p>
<h3>
	1. ダウンロードしたファイルをサーバーにアップする</h3>
<p>
	「/MTが入ってるディレクトリ/themes/」に解凍したテーマファイルをアップロードします。</p>
<h3>
	2. テーマを適用する</h3>
<p>
	すでに、MTがインストール済みの場合、「デザイン&gt;テーマ」に行くと、下記のような画面になってるはずです（Blankというテーマが表示されていない場合、アップロードした場所が間違ってるかも）。</p>
<p>
	「適用」をクリックすると、テーマが切り替わります。</p>
<p class="media">
	<img alt="" height="244" src="/archives/assets/img/2010/pic-scr-theme.png" width="688" /> <span class="caption">テーマ選択画面</span></p>
<p>
	（試してませんが）インストール（または、新規ブログ作成）する時に選ぶ事も出来ると思います。</p>
<h3>
	3. テンプレートを確認する</h3>
<p>
	テーマを適用すると、以下の画像のように、各テンプレートがカラになっているはずー。</p>
<p class="media">
	<img alt="" height="465" src="/archives/assets/img/2010/pic-scr-template.png" width="688" /> <span class="caption">テンプレート一覧画面</span></p>
<h2>
	まとめ</h2>
<ul>
	<li>
		とりあえず、まっさらな状態から書きたいぜ！という人向け（かも）</li>
	<li>
		全部、カスタムテンプレートになっちゃうので、注意が必要</li>
	<li>
		ローカルである程度書いてから、確認したい人は、最初からオリジナルのテーマを書いちゃった方が早い（と思う）</li>
</ul>
<p>
	という訳で、いまひとつメリットの薄い感が否めないテーマですが、誰かのお役に立てば幸いです&hellip;&hellip;</p>
<p>
	本当は、ちゃんと（？）したテーマも書いているのですが、「自分のブログをこのテーマに置き換えるには結構作業が必要で、その内、仕事が忙しくなって触れなくて&hellip;&hellip;」という感じになる事を恐れてのポストだという事は内緒です（汗</p>
<p>
	<strong class="attention">追記：</strong>「なんと！」あの人気ブログの著者が似たような（？）発想のテンプレートを配布していました。「みんな、同じような事考えてたんだなー（しみじみ）」。</p>
<p>
	尚、上記のテーマ『<a href="http://mt.underhat.jp/theme/003/">MT underHat テーマ 003 - ニューマ</a>』は、mt.jsとatom.xmlは残してあり、他のテンプレートも各ページのものが白紙の状態で用意してあるようです（モジュールやウィジェットは無い）。<br />
	「書き直すには書き直すけど、コメントとか使うしmt.jsは必要だなー」とかいう場合は『<a href="http://mt.underhat.jp/theme/003/">MT underHat テーマ 003 - ニューマ</a>』がとても便利だと思います（追記：2010年09月01日）。</p>
]]></description>
<link>http://www.nagomu.me/archives/2010/nagomu100817.html</link>
<guid>http://www.nagomu.me/archives/2010/nagomu100817.html</guid>
<pubDate>Tue, 17 Aug 2010 23:53:30 +0900</pubDate>
</item>
<item>
<title>MT5の管理画面をjQueryでゴニョゴニョする時に</title>
<description><![CDATA[<p>
	2009年11月に書いた「<a href="http://www.nagomu.me/archives/2009/nagomu091120.html">MT5はjQueryでビシビシ管理画面をカスタマイズ出来ます</a>」という記事が結構アクセスを集めているみたいなんですが、書いてある内容はすごくたいした事ないので「なんかネタないかなー」と思っていましたが、その後、そういったお仕事をする機会がなく、そのままになっていました（言い訳。</p>
<p>
	で、（実はまだ使ってないけど）良さげなプラグインをご紹介したいと思います。</p>
]]><![CDATA[<h2>
	MT5の管理画面をjQueryでゴニョゴニョする時に便利そうな「MTAppjQuery」プラグイン</h2>
<p>
	プラグインは、</p>
<p>
	<a href="http://www.tinybeans.net/blog/download/mt-plugin/mtapp-jquery.html">MTAppjQuery | かたつむりくんのWWW</a></p>
<p>
	です。</p>
<p>
	基本的な機能としては、プラグインの設定画面で</p>
<ul>
	<li>
		管理画面で使いたいJSを書ける</li>
	<li>
		ユーザーとかブログによって処理を分けられる</li>
	<li>
		外部スクリプトを管理画面に読み込ませることが出来る（scriptタグ書ける）</li>
</ul>
<p>
	など、やりそうな事はだいたい出来るようです。</p>
<p>
	その他、</p>
<ul>
	<li>
		テキストボックスとかを複数チェックボックスに変換</li>
	<li>
		フィールドのソート</li>
	<li>
		フィールドのラベルをリネーム</li>
</ul>
<p>
	といった機能も備えているようです。</p>
<p>
	自分で書いちゃった方がラクな場合もあると思いますが、後で、「そんなに色々分からないです」という人に引き継ぐ場合もあると思うので、そういう時は、こういった、公開・配布されているプラグインはとても便利！<br />
	感謝です。</p>
<p>
	このあと1カ月くらいはMTのお仕事がチョコチョコ続く予定なので、この間に試せたら、またアイディアを出したいと思います。</p>
]]></description>
<link>http://www.nagomu.me/archives/2010/nagomu100716.html</link>
<guid>http://www.nagomu.me/archives/2010/nagomu100716.html</guid>
<pubDate>Fri, 16 Jul 2010 12:16:13 +0900</pubDate>
</item>
<item>
<title>Google Analyticsのコードで検索エンジンを追加するメモ</title>
<description><![CDATA[<p>
	Google Analyticsのコードが新しくなりまして、非同期で実行出来るようになったりしましたが、なんか変わったトコがあるみたいなのでメモ。</p>
]]><![CDATA[<p>
	とりあえず、「head内の一番下に書くとパフォーマンス最高ッス」ということらしいですね。</p>
<p>
	<a href="http://www.google.com/support/analytics/bin/answer.py?hl=ja_JP&amp;answer=174090&amp;utm_id=ad">トラッキングコードの設定 | Google Analyticsヘルプ</a></p>
<p>
	で、（主に国内の）検索エンジンを追加するメモ。<br />
	<strong class="attention">* 検証がいいかげんなので、自己責任でお願いします。メモです！メモ！</strong></p>
<h2>
	デフォルトの検索エンジン</h2>
<ul>
	<li>
		Google</li>
	<li>
		Yahoo</li>
	<li>
		MSN</li>
	<li>
		Lycos</li>
	<li>
		Ask</li>
	<li>
		Altavista</li>
	<li>
		Netscape</li>
	<li>
		CNN</li>
	<li>
		Looksmart</li>
	<li>
		About</li>
	<li>
		Mamma</li>
	<li>
		Alltheweb</li>
	<li>
		Gigablast</li>
	<li>
		Voila</li>
	<li>
		Virgilio</li>
	<li>
		Live</li>
	<li>
		Baidu</li>
	<li>
		Alice</li>
	<li>
		Yandex</li>
	<li>
		Najdi</li>
	<li>
		AOL</li>
	<li>
		Club-internet</li>
	<li>
		Mama</li>
	<li>
		Seznam</li>
	<li>
		Search</li>
	<li>
		Wp</li>
	<li>
		Onet</li>
	<li>
		Netsprint</li>
	<li>
		Google.interia</li>
	<li>
		Szukacz</li>
	<li>
		Yam</li>
	<li>
		Pchome</li>
</ul>
<p>
	と、あります（<a href="http://www.google.com/support/googleanalytics/bin/answer.py?hl=jp&amp;answer=77613">Google Analytics はどのような検索エンジンを認識しますか。 | Google Analyticsヘルプ</a>）。</p>
<h2>
	（主に国内の）検索エンジンを追加する</h2>
<pre class="js:firstline[1]" name="code">&lt;script type=&quot;text/javascript&quot;&gt;
//&lt;![CDATA[
var _gaq = _gaq || [];
_gaq.push([&#39;_setAccount&#39;, &#39;UA-XXXXXXX-x&#39;]);
_gaq.push([&#39;_addOrganic&#39;,&#39;images.google&#39;,&#39;q&#39;]);
_gaq.push([&#39;_addOrganic&#39;,&#39;biglobe&#39;,&#39;q&#39;,true]);
_gaq.push([&#39;_addOrganic&#39;,&#39;nifty&#39;,&#39;q&#39;,true]);
_gaq.push([&#39;_addOrganic&#39;,&#39;azby.search.nifty&#39;,&#39;q&#39;,true]);
_gaq.push([&#39;_addOrganic&#39;,&#39;infoseek&#39;,&#39;qt&#39;]);
_gaq.push([&#39;_addOrganic&#39;,&#39;rakuten&#39;,&#39;qt&#39;]);
_gaq.push([&#39;_addOrganic&#39;,&#39;livedoor&#39;,&#39;q&#39;,true]);
_gaq.push([&#39;_addOrganic&#39;,&#39;so-net&#39;,&#39;query&#39;]);
_gaq.push([&#39;_addOrganic&#39;,&#39;fresheye&#39;,&#39;kw&#39;]);
_gaq.push([&#39;_addOrganic&#39;,&#39;auone&#39;,&#39;q&#39;,true]);
_gaq.push([&#39;_addOrganic&#39;,&#39;ocnsearch&#39;,&#39;MT&#39;]);
_gaq.push([&#39;_addOrganic&#39;,&#39;hi-ho&#39;,&#39;MT&#39;]);
_gaq.push([&#39;_addOrganic&#39;,&#39;odn&#39;,&#39;search&#39;]);
_gaq.push([&#39;_addOrganic&#39;,&#39;eonet&#39;,&#39;search&#39;]);
_gaq.push([&#39;_addOrganic&#39;,&#39;goo&#39;,&#39;MT&#39;]);
_gaq.push([&#39;_addOrganic&#39;,&#39;excite&#39;,&#39;search&#39;]);
_gaq.push([&#39;_addOrganic&#39;,&#39;asahi&#39;,&#39;Keywords&#39;]);
_gaq.push([&#39;_addOrganic&#39;,&#39;luna&#39;,&#39;q&#39;]);
_gaq.push([&#39;_addOrganic&#39;,&#39;lunascape&#39;,&#39;p&#39;]);
_gaq.push([&#39;_addOrganic&#39;,&#39;hatena&#39;,&#39;word&#39;]);
_gaq.push([&#39;_addOrganic&#39;,&#39;ecnavi&#39;,&#39;Keywords&#39;]);
_gaq.push([&#39;_addOrganic&#39;,&#39;mixi&#39;,&#39;keyword&#39;]);
_gaq.push([&#39;_addOrganic&#39;,&#39;twitter&#39;,&#39;q&#39;,true]);
_gaq.push([&#39;_trackPageview&#39;]);
(function() {
var ga = document.createElement(&#39;script&#39;); ga.type = &#39;text/javascript&#39;; ga.async = true;
ga.src = (&#39;https:&#39; == document.location.protocol ? &#39;https://ssl&#39; : &#39;http://www&#39;) + &#39;.google-analytics.com/ga.js&#39;;
var s = document.getElementsByTagName(&#39;script&#39;)[0]; s.parentNode.insertBefore(ga, s);
})();
//]]&gt;
&lt;/script&gt;
</pre>
<p>
	_gaq.push([&#39;_setAccount&#39;, &#39;UA-XXXXXXX-x&#39;]);<br />
	の部分は、都度、使用する環境に書き換える感じです。</p>
<p>
	（以降、2010年6月23日13:21 追記）その他、<a href="http://www.suzukikenichi.com/blog/the-way-to-measure-real-bounce-rate-with-asynchronous-tracking-of-google-analytics/">Google Analyticsで本当の直帰率を調べる方法2【非同期トラッキングコード 編】</a>というのも、今、試しています。 自分のブログのアクセス数とか結構どうでもイイのですが、実験には最高ですな。</p>
]]></description>
<link>http://www.nagomu.me/archives/2010/nagomu100623.html</link>
<guid>http://www.nagomu.me/archives/2010/nagomu100623.html</guid>
<pubDate>Wed, 23 Jun 2010 01:15:14 +0900</pubDate>
</item>
<item>
<title>WindowsXPでもアンチエイリアスが効いてる感じで（にしたかった）</title>
<description><![CDATA[<p>
	常に、しっかりと調べてちゃんとした記事を書いてくださっている<a href="http://www.yomotsu.net/">ヨモツネット</a>さんで、（もう1カ月前ですが）<a href="http://www.yomotsu.net/wp/?p=565">WebFontsとして利用できるフリーの和文フォント</a>が紹介されていました。</p>
<p>
	ヨモツネットさんは、以前から『XPではClearTypeが（デフォルトだと）有効じゃないので、せっかく@font-faceしても、いまひとつ恩恵を受けられない』的なお話をブログやイベントされており、各所で似たようなお話を見聞きしていた事もあり、その事自体は把握しておりました。</p>
<p>
	ただ、実際に試した事がなかったので、これを機に試してみる事にしました。<br />
	<span class="small">『そもそも、あまりフォントとかいじらないで見せるべき』とか、そういう話は今回、気にしないでください。</span></p>
]]><![CDATA[<h2>
	とりあえず、テスト用のファイルを作ってみる</h2>
<p>
	実際には紹介されていたフォントを全て試したのですが、スペースの関係（謎）で、下記の3つに絞って結果を掲載しておきます。</p>
<ul>
	<li>
		<a href="http://dicey.org/vlgothic/">VL ゴシック</a></li>
	<li>
		<a href="http://ossipedia.ipa.go.jp/ipafont/">IPA P Gothic /&nbsp;IPA P Mincho</a>（IPAフォントライセンスの各事項にご同意して、ページ一番下の「同意する」をクリックで先に進む）</li>
</ul>
<p>
	IPAフォントに関しては、IPAex系を使っても、同様の結果が得られると思います。</p>
<h3>
	IE用にttfをeotに変換</h3>
<p>
	試すには、まず、テスト用のファイルを作らんと。　という事で、ヨモツネットさんが紹介されていたフォントを一通りダウンロードして、ttfをeotに変換します。<br />
	ttf &rarr; eotの変換は色々な方法があると思いますが、今回は、<a href="http://ttf2eot.sebastiankippe.com/" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-family: inherit; font-weight: inherit; font-style: inherit; font-size: 13px; vertical-align: baseline; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(51, 102, 153); ">ttf2eot</a>を使わせていただきました。</p>
<h3>
	順番に@font-face</h3>
<p>
	今回は実戦を伴わないテストなので、プラットフォーム互換などは考えず、順に試しますので、IE用とそれ以外でだけ分ければOK。</p>
<h4>
	VL ゴシックの場合</h4>
<pre class="js:firstline[1] css" name="code">&lt;style type=&#39;text/css&#39; media=&#39;all&#39;&gt;
@font-face{
font-family:&#39;VLPGothic&#39;;
src:url(&#39;/VL-Gothic-Regular.eot&#39;); /* IE */
src: local(&#39;hide from IE&#39;),url(&#39;/VL-Gothic-Regular.ttf&#39;) format(&#39;truetype&#39;); /* Not IE */
}
body{
font-family:&#39;VLPGothic&#39;,sans-serif;
line-height:1.5;
}
&lt;/style&gt;
</pre>
<h4>
	IPA P ゴシックの場合</h4>
<pre class="js:firstline[1] css" name="code">&lt;style type=&#39;text/css&#39; media=&#39;all&#39;&gt;
@font-face{
font-family:&#39;IPAPGothc&#39;;
src:url(&#39;/ipagp.eot&#39;); /* IE */
src: local(&#39;hide from IE&#39;),url(&#39;/ipagp.ttf&#39;) format(&#39;truetype&#39;); /* Not IE */
}
body{
font-family:&#39;IPAPGothc&#39;,sans-serif;
line-height:1.5;
}
&lt;/style&gt;
</pre>
<h4>
	IPA P 明朝の場合</h4>
<pre class="js:firstline[1] css" name="code">&lt;style type=&#39;text/css&#39; media=&#39;all&#39;&gt;
@font-face{
font-family:&#39;IPAPMincho&#39;;
src:url(&#39;/ipamp.eot&#39;); /* IE */
src: local(&#39;hide from IE&#39;),url(&#39;/ipamp.ttf&#39;) format(&#39;truetype&#39;); /* Not IE */
}
body{
font-family:&#39;IPAPMincho&#39;,sans-serif;
line-height:1.5;
}
&lt;/style&gt;
</pre>
<p>
	と、まあ、こんな感じです。</p>
<p>
	htmlのソースは割愛しますが、font-sizeとかcolorはインラインで書いて、font-sizeはpx単位にしてあります。<br />
	あと、strongとemを使っています。</p>
<h2>
	スクリーンショット</h2>
<p>
	テストにしか使ってないので、問題なくデフォルトの状態だろうと思いつつ、念のため確認しましたが、『画面のプロパティ&rarr;デザイン&rarr;効果&rarr;次の方法でスクリーン フォントの縁を滑らかにする』は、「標準」になっていました。</p>
<p>
	では、順番に。</p>
<h3>
	VL ゴシック</h3>
<p class="media">
	<img alt="" height="290" src="/assets/img/blog/2010/pic-vl-ch.jpg" width="688" /> <span class="caption">Chrome</span></p>
<p class="media">
	<img alt="" height="290" src="/assets/img/blog/2010/pic-vl-fx.jpg" width="688" /> <span class="caption">Firefox</span></p>
<p class="media">
	<img alt="" height="290" src="/assets/img/blog/2010/pic-vl-ie7.jpg" width="688" /> <span class="caption">IE7</span></p>
<p class="media">
	<img alt="" height="290" src="/assets/img/blog/2010/pic-vl-ie6.jpg" width="688" /> <span class="caption">IE6</span></p>
<p>
	読めなくはないけど、濃淡というか明るさで強弱付けるのは無理っぽいですね。#666程度までならアリっちゃあアリかもしれませんが、環境によっても見え方が変わると思うので、お勧めは出来ませんねぇ。 ただ、IE7に関しては、いける気がします。</p>
<h3>
	IPA P ゴシック</h3>
<p class="media">
	<img alt="" height="290" src="/assets/img/blog/2010/pic-ipagp-ch.jpg" width="688" /> <span class="caption">Chrome</span></p>
<p class="media">
	<img alt="" height="290" src="/assets/img/blog/2010/pic-ipagp-fx.jpg" width="688" /> <span class="caption">Firefox</span></p>
<p class="media">
	<img alt="" height="290" src="/assets/img/blog/2010/pic-ipagp-ie7.jpg" width="688" /> <span class="caption">IE7</span></p>
<p class="media">
	<img alt="" height="290" src="/assets/img/blog/2010/pic-ipagp-ie6.jpg" width="688" /> <span class="caption">IE6</span></p>
<p>
	ダメですね。 ただ、これもIE7に関しては、いける気がします。</p>
<h3>
	IPA P 明朝</h3>
<p class="media">
	<img alt="" height="290" src="/assets/img/blog/2010/pic-ipamp-ch.jpg" width="688" /> <span class="caption">Chrome</span></p>
<p class="media">
	<img alt="" height="290" src="/assets/img/blog/2010/pic-ipamp-fx.jpg" width="688" /> <span class="caption">Firefox</span></p>
<p class="media">
	<img alt="" height="290" src="/assets/img/blog/2010/pic-ipamp-ie7.jpg" width="688" /> <span class="caption">IE7</span></p>
<p class="media">
	<img alt="" height="290" src="/assets/img/blog/2010/pic-ipamp-ie6.jpg" width="688" /> <span class="caption">IE6</span></p>
<p>
	これもダメですね。 ただ、これもIE7に関しては、アリと言えなくもないかな。フォントサイズ大きめのトコで、かつ、（引用など）部分的に使うとかであれば。</p>
<h2>
	結果</h2>
<p>
	事実に関しては、ご覧の通りなので、それぞれのプロジェクトで相応の立場の方がご判断されれば良いと思いますが、「使うとしたらXPかつIE7以上」みたいになんらかの方法で分けて使う感じですかね。 &darr;ごくいい加減なサンプルで申し訳ございません。</p>
<pre class="js:firstline[1] php" name="code">&lt;?php
if (preg_match(&quot;/Windows NT 5/&quot;,$_SERVER[&#39;HTTP_USER_AGENT&#39;])) {
echo &quot;&lt;!--[if gte IE 7]&gt;&lt;style type=&#39;text/css&#39; media=&#39;all&#39;&gt;@font-face{font-family:&#39;IPAPGothic&#39;;src:url(&#39;/ipagp.eot&#39;);}body{font-family:&#39;IPAPGothic&#39;,&#39;Verdana&#39;,&#39;MS PGothic&#39;,sans-serif;}&lt;/style&gt;&lt;![endif]--&gt;&quot;;
}
?&gt;
</pre>
<p>
	Vista以降は、デフォルトだとClearTypeが有効になっているので、（Windows7で見た限り）今回試したフォントは、そこそこ見れる感じでした。<br />
	ただ、Meiryoではなく、あえてWebFontsを使うにはちょっと根拠が足りない気もします。</p>
<p>
	という訳で、XPのサポートが終了する日を待ち望みつつ、「IE9でせっかくフォントまわりの表示をキレイにするんだから、いい感じのフォントを追加してくれよ。せめて日本語がまっとうに表示される明朝体をひとつだけでも」みたいな嘆願をMSさんに出してみるとか？</p>
<p>
	また、最後になりましたが、日本語対応フォントの制作ってめちゃくちゃ大変で、そんな大変なものを無償で提供されている方々には本当に頭が下がります。<br />
	AXIS Basicが9,354文字とかだったので、毎日（365日）欠かさず10字作っても、2年とか3年とか、かかるの計算に&hellip;&hellip;</p>
<p>
	今回のテストに関しては、クライアントさんから「HG丸ゴシックとか使ってよ」などと言われてしまう、たまにあるパターンでも「こういう事情で現実的じゃないッスね」という資料にするとか、何かに役立つと幸いです。</p>
<p>
	あ、そういえば、<a href="http://jp.jimdo.com/">Jimdo</a>のBusinessプランではモリサワが使えるらしいですね（本文などで使えるようになるのは近日予定）。 &nbsp;<span class="small">* 「使える」ってのがどういう意味なのか、どこに書いてあるか分かりませんでした（汗</span></p>
<p>
	<meta charset="utf-8" /></p>]]></description>
<link>http://www.nagomu.me/archives/2010/nagomu100609.html</link>
<guid>http://www.nagomu.me/archives/2010/nagomu100609.html</guid>
<pubDate>Wed, 09 Jun 2010 11:12:14 +0900</pubDate>
</item>
<item>
<title>CKEditor for Movable Typeを使う時の準備とか</title>
<description><![CDATA[<p>
	Movable Typeを使うお仕事の場合、（自分がユーザーだったら）個人的には「大量のカスタムフィールドに入力するの面倒だから、出来るだけWYSIWYGだけで済ませたくね？」と思うので、可能な限り<a href="http://tec.toi-planning.net/mt/ckeditor/ckeditor-for-movable-type/">CKEditor for Movable Type</a>のテンプレート機能などを駆使する方向で提案しています。</p>
<p>
	しかしながら、そのまま使うと、書き出されるソースに「インデント」「開始タグの後に改行」が入ってしまって、「まあ、MTタグで正規表現などを使って置換しても良いのだけれど&hellip;&hellip;なんだかなぁ」とか思ってました。</p>
<p>
	で、今まで放置してた訳ですが、さすがにそろそろ調べてみようという事で、自分用のメモを晒しておきます。</p>
<script id="cke_actscrpt" type="text/javascript">window.onload = function(){window.parent.CKEDITOR._["contentDomReadyeditor-content-textarea"]( window );}</script>]]><![CDATA[<h2>
	使いそうなプラグイン</h2>
<p>
	CKEditorには便利なボタンがたくさん用意されているので、基本的にはカスタム設定で減らしていく事の方が多いと思いますが、とりあえず「こんなの無いかなぁ」って時に探す場所とか、過去に使ったプラグインをメモ。</p>
<h3>
	CKEditor関連の情報を探す時に見る</h3>
<ul>
	<li>
		<a href="http://cksource.com/forums/viewforum.php?f=11">CKSourceのフォーラム</a></li>
	<li>
		<a href="http://docs.cksource.com/CKEditor_3.x/Developers_Guide">CKEditor 3.x/Developers Guide</a></li>
	<li>
		<a href="http://tec.toi-planning.net/mt/ckeditor/ckeditor-for-movable-type/">ToI（CKEditor for Movable Type とは）</a></li>
</ul>
<h3>
	HTMLソースを挿入するプラグイン</h3>
<p>
	YouTubeとかGoogleマップとか「ソースを貼り付け」がしたい時に使えます。<br />
	あと、HTMLを書けるけどソースを表示するボタンを使ってないみたいな時とかも&hellip;&hellip;ないか（汗</p>
<p>
	<a href="http://code.google.com/p/lajox/downloads/list?q=label:inserthtml">Inserthtmlプラグイン（Google Code）<br />
	</a></p>
<p>
	お仕事で使う場合は、langの中にja.jsを作ってあげると良いかもしれません。</p>
<ol>
	<li>
		lang/en.jsをコピーしてja.jsに</li>
	<li>
		plugin.jsの13行目くらいにあるlangをjaにする</li>
	<li>
		作ったja.jsの1行目のenをjaにする</li>
	<li>
		ja.jsを日本語にする（titleがダイアログのタイトル / HelpInfoがテキストエリアの上の説明）</li>
</ol>
<p>
	インストールの方法はreadmeに書いてあります。<br />
	まあ、pluginsに入れて、ボタンを設定のトコにinserthtmlを追加するだけです。</p>
<h3>
	imgとかaとかのパスを書き換えるプラグイン</h3>
<p>
	まあ、これはMT側で一括置換しちゃうと思いますが、データが書き換えられてた方が、後でラクな気がしますので、使った方が良いと個人的には考えています。</p>
<p>
	<a href="http://sourceforge.jp/projects/ckeditor/wiki/Rewrite">Rewrite - CKEditor Japan Wiki - SourceForge.JP</a></p>
<p>
	プラグインそのものは、最新のCKEditor for Movable Typeに同梱されているはずなので、上記のリンクで設定方法等をご覧いただくとよろしいかと。</p>
<h2>
	毎回やりそうな設定</h2>
<p>
	個人的なメモですが。。。</p>
<h3>
	ボタンの画像を変更</h3>
<p>
	個人的には、FCKEditorの頃のが好きなので、いつも変えてます。<br />
	場所は「CKEditor/ckeditor/skins/movabletype/icons.png」。 movabletype以外のスキンを使う予定がないので、他のは削除。</p>
<h3>
	スタイルの設定</h3>
<p>
	場所は「CKEditor/style/config.js」<br />
	ほとんど、テンプレートで挿入するようにしているので、ここで使うのは、太い赤字とか小さいグレーの字とかデフォルトで入ってるqやciteくらいですかねぇ。</p>
<h3>
	テンプレートの設定</h3>
<p>
	場所は「CKEditor/template/config.js」<br />
	よくあるパターンとしては、キャプション付きの画像を左右にfloatとか、定型の連絡先とか&hellip;&hellip;lightbox的な事などにもイイ気がします。</p>
<h3>
	ソースコードの整形</h3>
<p>
	今回、探してたのはココなんですが、「<a href="http://docs.cksource.com/CKEditor_3.x/Developers_Guide/Output_Formatting">Developers Guide</a>」にありました。<br />
	詳細はリンク先をご覧いただければわかると思いますが、使いそうなのは&hellip;&hellip;</p>
<ol>
	<li>
		「CKEditor/ckeditor/ckeditor.js」を開く</li>
	<li>
		indentationCharsを検索して&#39;\t&#39;を「&#39;&#39;」に修正（タブインデントしない）</li>
	<li>
		breakAfterOpenを検索してtrueを「false」に（開始タグの後で改行しない）</li>
</ol>
<p>
	って感じです。</p>
<p>
	これで、</p>
<pre class="js:firstline[1] html" name="code">&lt;p&gt;
\tほげほげほげほげほげ&lt;/p&gt;
&lt;p&gt;
\tほげほげほげほげほげ&lt;/p&gt;
</pre>
<p>
	とか整形されてたのを</p>
<pre class="js:firstline[1] html" name="code">&lt;p&gt;ほげほげほげほげほげ&lt;/p&gt;
&lt;p&gt;ほげほげほげほげほげ&lt;/p&gt;
</pre>
<p>
	に出来るはず。<br />
	リンク先にも書いてありますが、configでも出来るので、元のソースをいじるのはやめといた方がいいかもですね。</p>
<p>
	この記事は、他になんか思いついたら、書き足していきたいと思います。</p>
]]></description>
<link>http://www.nagomu.me/archives/2010/nagomu100513.html</link>
<guid>http://www.nagomu.me/archives/2010/nagomu100513.html</guid>
<pubDate>Thu, 13 May 2010 16:13:21 +0900</pubDate>
</item>
<item>
<title>リッチスニペット @ Googleについて</title>
<description><![CDATA[<p>
	このトコロ、HTML5/CSS3とかがすげー盛り上がってますね。<br />
	もちろん、興味はあるので情報収集したり、使えるものは使ってみたりしていますが、正直（特にHTML5に関しては）、「なんか色々ゴッチャになるから、決まるまで見るのやめようか」とか感じはじめていたり。。。<br />
	<br />
	更に、ちゃんと仕事としてやるには、クライアントさまのOKを貰わないといけなかったりする部分もあるかもなので、現状、なかなか難しいという事もあるでしょう。<br />
	<br />
	で、「今日勉強するなら何かなぁ」とか考えた時に思いついたのとかを書いてみます。</p>
]]><![CDATA[<p>
	ポイントとしては、現時点でお仕事としてやれるかどうか（提案しても現実的かどうか）。<br />
	見つけたのが、「<a href="http://www.google.com/support/webmasters/bin/answer.py?hl=jp&amp;answer=99170">リッチ スニペット</a>」でした。</p>
<div class="media">
	<p>
		<img alt="" height="148" src="http://www.nagomu.me/archives/assets/img/pic100421.png" width="408" /></p>
</div>
<p>
	まあ、絶対載せてくれる訳ではないのですが、今後、microdataとかは需要が出てきそうではあります。<br />
	特に、CMS使う前提だったりすると、こういう提案もアリかな？と思います。<br />
	あと、SEOについては大概、何かしら言われますもんね。</p>
<p>
	運良く食いついていただけると、下落が止まらない単価にも多少のストップがかかるかも？</p>
<p>
	という訳で、<a href="http://www.google.com/support/webmasters/bin/answer.py?answer=146897" title="microformats について Google Webmaster Tool">microformats</a>とかは、ちゃんと覚え直して、出来るだけ使っていきたいと思いました。</p>
]]></description>
<link>http://www.nagomu.me/archives/2010/nagomu100421.html</link>
<guid>http://www.nagomu.me/archives/2010/nagomu100421.html</guid>
<pubDate>Wed, 21 Apr 2010 18:41:56 +0900</pubDate>
</item>
<item>
<title>コーディングする人は知ってるけど、デザイナーさんが知らないかもしれない文字の話</title>
<description><![CDATA[<p>
	仰々しいタイトルですが、勉強不足の為、中身が伴ってません（汗<br />
	早い話、「font-sizeとかline-heightをpxで指定して、色々な環境でスクリーンショットを撮りました」という内容です。</p>
<p>
	とりあえず、PSDとHTMLが&darr;</p>
<p>
	<a class="button" href="/assets/file/2010/font.zip">Download<br />
	</a></p>
<p>
	環境は以下の通りです。</p>
<dl>
	<dt>
		Mac OS X(10.6)</dt>
	<dd>
		<ul>
			<li>
				Safari4.0.6</li>
			<li>
				Chrome5.0.307.11 beta</li>
			<li>
				Firefox3.6</li>
			<li>
				Opera10.10</li>
		</ul>
	</dd>
	<dt>
		Windows7(VM WARE上)</dt>
	<dd>
		<ul>
			<li>
				Internet Explorer8</li>
			<li>
				Internet Explorer9 Preview</li>
			<li>
				Firefox3.6</li>
			<li>
				Chrome4.0.249.89</li>
		</ul>
	</dd>
	<dt>
		WindowsXP(VM WARE上)</dt>
	<dd>
		<ul>
			<li>
				Internet Explorer6(MultipleIE)</li>
			<li>
				Internet Explorer7</li>
			<li>
				Firefox3.6</li>
			<li>
				Chrome4.0.249.89</li>
		</ul>
	</dd>
</dl>
<p>
	font-sizeとline-heightはpxで絶対値にして、font-familyは都度書き換えました。<br />
	WinのOperaで撮るの忘れました（汗</p>
<p>
	それぞれ、OSとfont-familyごとにグループを分けてあります。<br />
	Textというグループには、各フォントサイズ＋行送りでのテキストレイヤーが入っています（ヒラギノ+Lucida Grandeのみ）。</p>
]]><![CDATA[<p>
	詳細な分析を書こうとすると、間違った事を書きかねないので、パッと見た目の<strong>感想</strong>を中心に書いてみます。</p>
<h2>
	fontが違えば幅が違う</h2>
<p>
	PSDをダウンロードして、レイヤーをチコチコいじってるとわかると思うのですが、まず目につくのは幅の違いだと思います。</p>
<p>
	これは、状況によって改行位置に影響を与えます。<br />
	また、それに付随して、テキスト部分の高さも変わったりする事がままあります。</p>
<p>
	また、あまり今回のテーマと関係ないですが、英文の場合は切れる箇所が少ない（って微妙な表現）ので、長い単語が入っただけで改行しちゃったりします。<br />
	サーバサイドとかで文字数区切ったりしたとしても、注意が必要です。</p>
<p>
	なので、高さの揃え方ってのは結構ゆるくしておかないとデザイナーさんの意図通りに表示されない事が多いと思います。</p>
<h2>
	フォントの種類とサイズでクセみたいのがあります</h2>
<p>
	これも見比べるとすぐわかる事ですが、フォントの種類によってブラウザ間の差が大きい事があります。<br />
	また、特定のフォントサイズ（＋行間）の時に差が出る事があります。</p>
<p>
	あと、メイリオはでかいですね。</p>
<p>
	詳しい説明は、後日書くか参考サイトをご紹介したいと思いますが、普段、CSSを書かないデザイナーさんの場合は仕様を覚えるより「この条件だと危ない」みたいな事を事前に試して知っておく方がラクかもしれません。</p>
<h2>
	なんで行間に差が出るか</h2>
<p>
	line-heightの事を、普段CSSを書かないデザイナーさんがちゃんと理解するのは結構大変だと思いますが、根本的な違いがあるって事は押えておかないと、指示があいまいになったり、「なんで出来ないのさ！」とストレスを抱える原因になると思うので、基礎中の基礎だけ書いておきます。</p>
<p>
	まあ、正直言って、CSSを書く人は、スケジュールが厳しい時などに「わかってないクセにガタガタうるせーな」とか思ってしまいがちなので、お互い楽しく仕事をする為に、また、イイものが作れるように、覚えておいて欲しいって思いがあったりします。</p>
<p>
	グラフィック系のアプリ基準で考えると「テキストのプロパティ」だけど、コーディングしてる人にとっては「視覚整形モデル（幅とか高さあたりと同じカテゴリ）」として扱ってるあたり、そもそも違う訳ですが、</p>
<dl>
	<dt>
		グラフィック系のアプリの場合は「行送り」</dt>
	<dd>
		<div class="media">
			<img alt="図：line-height（Photoshopの場合） 行間というより行送りなので、次の行との間にスペースが生まれる" height="97" src="http://www.nagomu.me/archives/assets/img/line-height-psd.png" style="" width="318" /><br />
			<span class="caption">line-height（グラフィック系アプリの場合）</span></div>
	</dd>
</dl>
<dl style="margin-top: 12px;">
	<dt>
		CSSの場合「行間」</dt>
	<dd>
		<div class="media">
			<img alt="図：line-height（CSSの場合） 上下にスペースが生まれる" height="100" src="http://www.nagomu.me/archives/assets/img/line-height-css.png" style="" width="318" /><br />
			<span class="caption">line-height（CSSの場合）</span></div>
	</dd>
</dl>
<p>
	という違いが、話をややこしくしている原因な気がします（参考：<a href="http://ja.wikipedia.org/wiki/%E7%B5%84%E7%89%88">組版 - Wikipedia</a>）。<br />
	<span class="small">* 図は、12px/14pxの場合です。比率とかは合わせてないので悪しからず。<br />
	* 欧文ルールだとベースラインからベースラインまでが行間だけど、和文にはベースラインという考え方がない！みたいな違いもあるらしいです。<br />
	</span></p>
<p>
	で、もうちょっと突っ込んだ話をすると、表示をする仕組み上は<strong>「あくまで、行ボックスの高さを算出するものであって、行間ではない」</strong>というのがポイントです。<br />
	また、決められるのは<strong>「最小の高さ」</strong>です。</p>
<p>
	しかも、算出方法を簡単にしたかったのか、欧文と和文（などのルールが違う文字）の差を埋めたかったのか<strong>「行の先頭であっても、最後であっても、上下均等にスペースが割り当て」</strong>られてしまいます。<br />
	<span class="small">* font-size:12px / line-height:14px;の場合、14 - 12 = 2が余白とされ、これらが、上1px + 下1pxと均等に割り当てられます。</span></p>
<p>
	環境によっては、「フォントの種類」「文章が欧文からスタートしているか」「和文まじりか」などでもズレが生じてしまうようです。</p>
<p>
	そんなわけで、この話をちゃんと展開するには、和文組版ルールと欧文組版ルールの両方を区分して説明し、さらにそのギャップをどう埋めるか...と、長々と説明しなければならないので、多少語弊がある表現でも気にせず、詳細は省略します。</p>
<div class="ii gt" id=":5d">
	<div class="im">
		で、結局、ブラウザにはそういう機能が皆無なので、CSSで工夫して実装するしかないのでした。</div>
</div>
<h2>
	画像とかはまた扱いが違うので</h2>
<p>
	CSSでは、画像などの置換要素と呼ばれる要素では、また扱いが異なります。</p>
<p>
	たとえば、画像の場合はheight属性値（または、heightプロパティ。または、画像のもともとのサイズ）が行ボックスの高さを決めますし、inputやselectなどフォームに使う要素では、ブラウザが決めたサイズが高さを決めます。</p>
<p>
	これらの高さが、line-heightで決めた、行の（最小の）高さを上回る場合、（最小の）高さは破棄され置換要素の高さが行の高さになります。</p>
<h2>
	今ってどうしてるか</h2>
<p>
	ここからは推測にすぎませんが、多くのコーダーさんとかは「デザイナーさんはline-heightの事が解ってないだろうという前提」で</p>
<ul>
	<li>
		「PSDの通り」と言われたら、数値ではなく見た目に合わせる</li>
	<li>
		ブラウザによって差が出てしまう部分は、可能な限り近づける</li>
	<li>
		無理な部分はブラウザシェアの高いものとかを優先する</li>
	<li>
		これらを、スケジュールなどと天秤にかけて、どこまでデザインに近づけられるかはりきる</li>
</ul>
<p>
	という感じで進めているんじゃないかと思います。<br />
	なので、作業的にはCSSを書いてる時間よりも、「Photoshopとかでググっと拡大して、計って、計算して」とかしてる時間の方が圧倒的に長いですよね＜（誰に？</p>
<p>
	ですから、デザイナーさんがこのあたりの知識をちゃんと持っていて、「font-size:12px;line-height:1.5;で上下の余白は1emくらい空けといてくれればイイから。あっ、見出しに隣接する場合は上の余白を0にしておいてね」みたいな資料（謎）を別途くれたりすると、かなりスピードアップにつながります。</p>
<p>
	また、デザイナーさんの作業的にも、都度デザインするより、予め良く登場する要素とそれらの組み合わせに対してルールを決めておいた方が、ブレないデザインに出来るのではないでしょうか？（知らんけども）</p>
<p>
	たぶん、多くのコーダーさんは、</p>
<ol>
	<li>
		最初に登場するであろうデザインの断片を全てコーディングする</li>
	<li>
		その後は、「ここが見出し」「ここが本文」「ここはリンク」みたいなのが分かるようになってるワード（テキストでもイイ）とかのドキュメントを元に量産</li>
	<li>
		どうしても、特別扱いな表現が出てきたら、その部分のスタイルを追加</li>
</ol>
<p>
	みたいに進められるとすげー早いと思ってるはず。<br />
	たぶん、こんな風にルールがちゃんと決められてるとコードの量も減るだろうし、色々なトコにメリットが出てくると思うなぁ。</p>
<h2>
	で、何が言いたかったかと言うと</h2>
<p>
	結局のところ、お互いの理解が足りない事で余計な作業が発生したりするのはもったいないので</p>
<ul>
	<li>
		コーディングする人は、ある程度デザイナーさんの意図を汲み取れるくらいの、デザイン知識が必要</li>
	<li>
		デザイナーさんとかチェックする人は、CSSの仕様とか環境による差異なんかに対する知識が必要</li>
	<li>
		「ココはビシっと揃えたい」みたいなトコロはちゃんと意思疎通をはかる</li>
	<li>
		更新の事とか考えて「公開したあとはどんどんクオリティが下がるだけ」みたいにならない、無理のないデザインにする</li>
	<li>
		色々なコストとかクオリティとかの優先順位の付け方なんかを案件毎にちゃんと考える</li>
</ul>
<p>
	とか、そんな事をちゃんと考えながら仕事しましょう。<br />
	反省したり勉強したりしないと、毎回「いや〜大変だったね」で終わってたら良くないよね。</p>
<p>
	という、意見でした。<br />
	「みんなどうしてるのかな？」とか思ったりもしました。</p>
<p>
	で、「勉強が足りないなぁ」と反省しました。<br />
	たぶん、コーディングとかしてる仕事なので、バックエンドの人が感じている「こういう感じのHTMLが欲しい」「こんなコメントが入ってると泣いて喜ぶ」みたいなのも知っておくべきですよね。</p>
]]></description>
<link>http://www.nagomu.me/archives/2010/nagomu100318.html</link>
<guid>http://www.nagomu.me/archives/2010/nagomu100318.html</guid>
<pubDate>Thu, 18 Mar 2010 13:57:50 +0900</pubDate>
</item>
<item>
<title>ZenCSSPropertiesなTextExpander用Snippet</title>
<description><![CDATA[<p>
	なんでか<a href="http://onecrayon.com/tea/coda/">Tea for Coda</a>（Coda用の<a href="http://code.google.com/p/zen-coding/wiki/ZenCSSPropertiesEn">zen-coding</a>プラグイン）ではCSSが展開されない。。。ような気がします。</p>
<p>
	ただ、いずれにしても<a href="http://www.smileonmymac.com/TextExpander/">TextExpander</a>を使っている人だったらスニペットを作っておけば、アプリケーションに依存せずzen-codingの手癖のまま書けるので、便利だと思います。</p>
<p>
	正直「これ（当分）使わんだろ」とか「コレ使うときは、これもまとめて」みたいなのが多いので、今までは独自のを使ってましたが、Codaのクリップと違って一括登録が簡単なので、作ってみました。</p>
<p>
	ただし、Tea for Codaのzen_settings.pyを参考に作ったので、オリジナルと比べたら一部不足していたりすると思います。</p>
<p>
	<a class="button" href="/assets/file/2010/zen-CSS.zip">Download<br />
	</a></p>
]]><![CDATA[<h2>
	注意事項など</h2>
<p>
	特に使い方っていうのもありませんが、展開方式はTextExpanderの設定依存ですので、zen-codingのつもりで展開しようとしても当然、何も起こりません。</p>
<p>
	私の場合はTABにしていますが「区切りなし」で展開する設定になっていると、「m」と入力した時点で「margin:;」とか展開されてしまうので、区切りの設定はした方が良いと思います。</p>
<p>
	また、通常、コーディングに使っているエディタ以外で使う事が無い場合は、アプリケーションを限定する事も出来ます。</p>
<p>
	省略形はzen-codingの<a href="http://code.google.com/p/zen-coding/wiki/ZenCSSPropertiesEn">ZenCSSProperties</a>を<br />
	設定やインストールに関しては<a href="http://www.smileonmymac.com/TextExpander/">TextExpander</a>を参考にしてください。</p>
<h3>
	その他</h3>
<p>
	微妙に、独自のものを追加してあります。</p>
<p>
	独自のものは、省略形の先頭に「,」が入っていますので、検索して編集・削除などして使ってください。</p>
<h4>
	追加してあるやつ</h4>
<p>
	,bdrz ... bdrzでborder-radiusですが、先頭に「,」を追加すると-moz-のと-webkit-のが一緒に展開されます。</p>
<p>
	,cl ... シンプルなclearfixが出力されます。　ネスケとかに対応する場合は編集してください。</p>
<p>
	,d:ib ... inline-blockの他に-moz-inline-boxとか、IE用に/display:inline;/zoom:1;とかが展開されます。</p>
<p>
	,m:0a ... m:autoみたいなもんですが、margin:0 auto;が展開されます。</p>
<p>
	,op ... opacityにプラスして、-ms-filter...と/filter...を展開。</p>
<p>
	以上です。</p>
]]></description>
<link>http://www.nagomu.me/archives/2010/nagomu100311.html</link>
<guid>http://www.nagomu.me/archives/2010/nagomu100311.html</guid>
<pubDate>Thu, 11 Mar 2010 21:19:21 +0900</pubDate>
</item>
<item>
<title>Codaでテキストを（自分好みに）色々フォーマットするプラグインを作る</title>
<description><![CDATA[<p>
	Codaでは、<a href="http://www.panic.com/jp/coda/developer/howto/plugins.php">Plug-in Creator</a>という便利なものが提供されているので、それを使って比較的簡単にプラグインを作る事が出来ます。<br />
	<br />
	色々と便利なプラグインが各所から提供されているものの、「ショートカットがコンフリ」「微妙に求めるフォーマットと違う」などという事は良くあると思います。<br />
	<br />
	なので、Plug-in Creatorの使い方を覚えておくと便利だと思います。</p>
<p>
	&darr;は今回作ったサンプルです。</p>
<p>
	<a class="button" href="http://www.nagomu.me/archives/assets/file/coda-sample-plugin.zip">Download</a></p>
]]><![CDATA[<p>
	とりあえず、目的が無いとアレ（何？）なので、テキストをフォーマットするや〜つをいくつかまとめたものを作ろうと思います。</p>
<ul>
	<li>
		複数行を一行に（PSDとかPPTとかで変な改行入ってるのをまとめるなど）</li>
	<li>
		HTMLタグを削除</li>
	<li>
		全角英数を半角に</li>
	<li>
		全角カタカナを半角に（携帯サイトとか）</li>
	<li>
		半角カタカナを全角に（携帯サイトのを戻すとか）</li>
	<li>
		Uppercaseする（使わなそう）</li>
	<li>
		Lowercaseする</li>
	<li>
		Capitalizeする（PSDとかで全部大文字になってた時とか）</li>
	<li>
		日付を挿入する（CSSとかJSの更新日を入れるなど）</li>
</ul>
<p>
	を、一つのプラグインにまとめてみます。</p>
<h2>
	はじめに</h2>
<p>
	いくつかのスクリプトは、<a href="http://www.panic.com/jp/">Panic</a>さんが公開している<a href="http://www.panic.com/jp/coda/developer/howto/plugins.php">Sample plugin</a>そのままです。<br />
	特にライセンスの事とか書いてませんでしたが、問題あったらご指摘ください。すぐに配布を止めます。</p>
<p>
	半角-全角プラグインについては、以前、配布されていた<a href="http://www.prove-wsc.com/lab.html">ConvertKana</a>というプラグインのソースを「こんな感じだったかね？」と思い出しつつ書きました。ですので、配布を中止されている理由をご確認の上、状況によっては文字化けなどが発生するのを踏まえてご利用ください。<span class="small"><strong class="attention">* いい方法があったら是非教えてください</strong></span></p>
<p>
	という訳で、<strong>プラグインの配布ではなく、作り方</strong>として読んで欲しいです。はい。</p>
<h2>
	プラグインで使う色々なスクリプトファイルを作る</h2>
<p>
	まずは、プラグインで使うスクリプトを書きます。<br />
	個々の説明はしません（ｷﾘｯ だって、自信ないし。。。クドイようですが、突っ込み大歓迎！</p>
<p>
	今回はPHPで書いてますが、PerlとかRubyとかPythonでもMacOSXで使えるものならOKです。</p>
<h3>
	複数行を一行に</h3>
<p>
	これは、サンプルプラグインのをそのまま使います。</p>
<pre class="js:firstline[1] php" name="code">#!/usr/bin/php
&lt;?php
$input = &quot;&quot;;
$fp = fopen(&quot;php://stdin&quot;, &quot;r&quot;);
while ( $line = fgets($fp, 1024) )
	$input .= $line;
fclose($fp);
$input = rtrim($input);
$input = preg_replace(&quot;/[\r\n]/&quot;, &quot;&quot;, $input);
echo $input . &quot;\n&quot;;
?&gt;
</pre>
<p>
	こんな感じ。適当にjoinlines.phpとでも名付けてデスクトップとかに保存しておきます。</p>
<h3>
	HTMLタグを削除</h3>
<p>
	これも、サンプルプラグインのをそのまま使います。</p>
<pre class="js:firstline[1] php" name="code">#!/usr/bin/php
&lt;?php
$input = &quot;&quot;;
$fp = fopen(&quot;php://stdin&quot;, &quot;r&quot;);
while ( $line = fgets($fp, 1024) )
	$input .= $line;
print strip_tags($input);
fclose($fp);
?&gt;
</pre>
<p>
	striptags.phpとでも名付けてデスクトップとかに保存しておきます。</p>
<h3>
	全角英数を半角に変換</h3>
<p>
	これは、ConertKanaを思い出しながら書いてみました</p>
<pre class="js:firstline[1] php" name="code">#!/usr/bin/php
&lt;?php
mb_language(&quot;Japanese&quot;);
mb_internal_encoding(&quot;UTF-8&quot;);
echo mb_convert_kana(mb_convert_encoding($_ENV[&quot;CODA_SELECTED_TEXT&quot;], &quot;UTF-8&quot;),&quot;a&quot;,&quot;UTF-8&quot;);
?&gt;
</pre>
<p>
	convert_a.phpとでも名付けてデスクトップとかに保存しておきます。</p>
<h3>
	全角カタカナを半角カタカナに変換</h3>
<p>
	これも、ConertKanaより。</p>
<pre class="js:firstline[1] php" name="code">#!/usr/bin/php
&lt;?php
mb_language(&quot;Japanese&quot;);
mb_internal_encoding(&quot;UTF-8&quot;);
echo mb_convert_kana(mb_convert_encoding($_ENV[&quot;CODA_SELECTED_TEXT&quot;], &quot;UTF-8&quot;),&quot;kV&quot;,&quot;UTF-8&quot;);
?&gt;
</pre>
<p>
	convert_hk.phpとでも名付けてデスクトップとかに保存しておきます。<br />
	「kV」なのか「Vk」なのか良く分からなかったんですが、同じ？</p>
<h3>
	半角カタカナを全角カタカナに変換</h3>
<p>
	これも、ConertKanaより。</p>
<pre class="js:firstline[1] php" name="code">#!/usr/bin/php
&lt;?php
mb_language(&quot;Japanese&quot;);
mb_internal_encoding(&quot;UTF-8&quot;);
echo mb_convert_kana(mb_convert_encoding($_ENV[&quot;CODA_SELECTED_TEXT&quot;], &quot;UTF-8&quot;),&quot;KV&quot;,&quot;UTF-8&quot;);
?&gt;
</pre>
<p>
	convert_zK.phpとでも名付けてデスクトップとかに保存しておきます。</p>
<h3>
	Uppercaseする</h3>
<p>
	これも、サンプルプラグインより。</p>
<pre class="js:firstline[1] php" name="code">#!/usr/bin/php
&lt;?php
$fp = fopen(&#39;php://stdin&#39;, &#39;r&#39;);
while ( $line = fgets($fp, 4096) )
	echo strtoupper($line); 
fclose($fp);
?&gt;
</pre>
<p>
	uppercase.phpとでも名付けてデスクトップとかに保存しておきます。</p>
<h3>
	Lowercaseする</h3>
<p>
	これも、サンプルプラグインより。</p>
<pre class="js:firstline[1] php" name="code">#!/usr/bin/php
&lt;?php
$fp = fopen(&#39;php://stdin&#39;, &#39;r&#39;);
while ( $line = fgets($fp, 4096) )
	echo strtoupper($line); 
fclose($fp);
?&gt;
</pre>
<p>
	lowercase.phpとでも名付けてデスクトップとかに保存しておきます。</p>
<h3>
	Capitalizeする</h3>
<p>
	これは、サンプルプラグインを参考にしつつ。</p>
<pre class="js:firstline[1] php" name="code">#!/usr/bin/php
&lt;?php
$fp = fopen(&#39;php://stdin&#39;, &#39;r&#39;);
while ( $line = fgets($fp, 4096) )
	echo ucwords(strtolower($line)); 
fclose($fp);
?&gt;
</pre>
<p>
	cpitalize.phpとでも名付けてデスクトップとかに保存しておきます。</p>
<h3>
	日付を挿入する</h3>
<p>
	こんなものは、他にも実現方法がいくらでもあると思いますが、あくまで「作り方」サンプルなので（汗<br />
	最近はCSSとかに入れる日付を「Mar 09, 2009」とかしてるので下記の通り「M d, Y」です。 <a href="http://php.net/manual/ja/function.date.php">PHPのマニュアル</a>などを見ながらお好みで。</p>
<pre class="js:firstline[1] php" name="code">#!/usr/bin/php
&lt;?php
date_default_timezone_set(&#39;Asia/Tokyo&#39;);
print date(&quot;M d, Y&quot;);
?&gt;
</pre>
<p>
	insertdate.phpとでも名付けてデスクトップとかに保存しておきます。</p>
<p>
	ここまででとりあえず準備OK。</p>
<h2>
	スクリプトファイルをプラグイン化する</h2>
<p>
	やっと本題です。</p>
<h3>
	Plug-in Creatorを起動</h3>
<p>
	Plug-in Creatorを起動します（まだ持ってない人はダウンロードしてきてください）。<br />
	で、「名前を付けて保存」してください。　仮に「TextFormat.codaplugin」とします。</p>
<p class="media">
	<img alt="起動画面：Coda Plug-in Creator" class="mt-image-none" height="389" src="http://www.nagomu.me/archives/assets/img/pic-10030901.png" style="" width="650" /></p>
<h3>
	コマンドを追加</h3>
<p>
	メニューバー（？）にある、「コマンドを追加」をクリックして、コマンドの名前を入力します。日本語でもOK。<br />
	ショートカットを追加する場合は、「ショートカット」の下をダブルクリックして、使いたいショートカットを実際に押します。　その時、他のプラグインとかぶってたら、そのように表示されますので、安心です（といっても他のアプリケーションとのコンフリまでは見てないと思います）。</p>
<p class="media">
	<img alt="コマンド追加画面：Coda Plug-in Creator" class="mt-image-none" height="389" src="http://www.nagomu.me/archives/assets/img/pic-10030902.jpg" style="" width="650" /></p>
<p class="media">
	<img alt="ショートカットの追加：Coda Plug-in Creator" class="mt-image-none" height="389" src="http://www.nagomu.me/archives/assets/img/pic-10030903.jpg" style="" width="650" /></p>
<h3>
	スクリプトを追加</h3>
<p>
	スクリプト・フィールドに、対象ファイルをドラッグするだけでOK。<br />
	今回のサンプルでは、実行時も成功時も「何もしない」にしていますが、必要であれば設定を。</p>
<p class="media">
	<img alt="スクリプトの追加画面：Coda Plug-in Creator" class="mt-image-none" height="399" src="http://www.nagomu.me/archives/assets/img/pic-10030904.jpg" style="" width="650" /></p>
<h3>
	入出力の設定</h3>
<p>
	今回のサンプルでは、下記の通り設定していますが、作るプラグインに併せて設定してください。</p>
<table style="width: 100%;">
	<caption>
		入出力の設定（日付の挿入以外）</caption>
	<thead>
		<tr>
			<th>
				入力タイプ</th>
			<td>
				空の場合</td>
			<td>
				出力タイプ</td>
		</tr>
	</thead>
	<tbody>
		<tr>
			<td>
				選択部分</td>
			<td>
				なし</td>
			<td>
				選択部分と置換</td>
		</tr>
	</tbody>
</table>
<table style="width: 100%;">
	<caption>
		入出力の設定（日付の挿入）</caption>
	<thead>
		<tr>
			<th>
				入力タイプ</th>
			<td>
				空の場合</td>
			<td>
				出力タイプ</td>
		</tr>
	</thead>
	<tbody>
		<tr>
			<td>
				なし</td>
			<td>
				なし</td>
			<td>
				選択部分と置換</td>
		</tr>
	</tbody>
</table>
<p>
	また、今回はサポートファイルを使いません。</p>
<h3>
	その他</h3>
<p>
	上記までを参考に、今回作りたいと思ったスクリプトを全部登録したのが&darr;のような感じ。</p>
<p class="media">
	<img alt="複数スクリプトの登録サンプル：Coda Plug-in Creator" class="mt-image-none" height="403" src="http://www.nagomu.me/archives/assets/img/pic-10030905.jpg" style="" width="650" /></p>
<p>
	順番を変えたい場合は、コマンド名をドラッグすればOKです。<br />
	ここまで、出来たら保存しておきましょう。</p>
<p>
	また、後で<strong>編集したい時</strong>は、<strong>「編集」ボタンをクリック</strong>すると、スクリプトのソースを開いてくれますので、たとえば、今回のサンプルファイルを一部修正したい場合などは、</p>
<p>
	<strong>「ダウンロードしたプラグインをPlug-in Creatorで開く&rarr;編集したいコマンドを選択&rarr;編集をクリック&rarr;編集・保存&rarr;プラグインを名前を付けて保存&rarr;CodaにインストールしてCodaを再起動」</strong></p>
<p>
	という手順を踏めば、修正出来ます。</p>
<h2>
	作ったプラグインをCodaに</h2>
<p>
	説明不要な気がしますが、保存したプラグインをDocのCodaアイコンにドラッグすればプラグインがインストールされます。　&darr;のようにメニューが表示されればOK。</p>
<p class="media">
	<img alt="Coda プラグインメニュー・サンプル" class="mt-image-none" height="262" src="http://www.nagomu.me/archives/assets/img/pic-10030907.jpg" style="" width="464" /></p>
<p>
	PHP・Perlなどのリファレンスに掲載されているサンプルレベルでも応用すれば色々なプラグインを作れると思うので、案件毎に「やたらこの処理が多いなぁ」ってのがあったら、プラグインを作ってみてはいかがでしょうか？</p>
<p>
	使い終わったら、普段はどこかに片づけておいてもイイですからね。</p>
<h2>
	サンプルとか</h2>
<p>
	無駄に<a href="/archives/assets/video/coda-sample-plugin.mov" title="サンプルプラグイン動画（QuickTime）">スクリーンキャスト的なもの（QuickTime）</a>もアップしてみました。</p>
<p>
	&darr;は今回作ったサンプルです。<span class="small attention"><br />
	</span></p>
<p>
	<a class="button" href="http://www.nagomu.me/archives/assets/file/coda-sample-plugin.zip">Download</a></p>
<p>
	<span class="small attention">* 動画もプラグインも特に制限なく使っていただいて問題ありませんが、Panicさんが公開しているサンプルが含まれるので、何かまずかったらすぐ取り下げます。</span></p>
]]></description>
<link>http://www.nagomu.me/archives/2010/nagomu100310.html</link>
<guid>http://www.nagomu.me/archives/2010/nagomu100310.html</guid>
<pubDate>Wed, 10 Mar 2010 01:19:35 +0900</pubDate>
</item>
<item>
<title>inline-blockで余白の調整する時とかにラクをしたい</title>
<description><![CDATA[<p>
	<a href="/archives/2010/nagomu100213.html">前回のlessネタ</a>に続き、今さら感が否めないネタですが、inline-blockを使う時の事を書いてみます。</p>
<p>
	とりあえず<a href="/assets/file/2010/100304/">サンプル</a>をチェックしてみてください。</p>
<p>
	<a class="button" href="/assets/file/2010/100304/" rel="demo">View Demo</a> <a class="button" href="/assets/file/2010/iblock.zip" rel="file">Download</a></p>
<p>
	<span class="small attention">* 早速、ご指摘をいただいた点を修正しました（Mar 05, 2010）。<br />
	</span>あっ。サンプルではIE5.5以下にCSS読ませないようにしてます。</p>
]]><![CDATA[<h2>
	inline-blockについて</h2>
<p>
	すでに、色々なところで紹介されているので、説明不要な気もしますが、一応。</p>
<blockquote>
	<p>
		This value causes an element to generate a block box, which itself is flowed as a single inline box, similar to a replaced element. The inside of an inline-block is formatted as a block box, and the element itself is formatted as an inline replaced element.</p>
	<cite><a href="http://www.w3.org/TR/CSS2/visuren.html#display-prop">W3C</a></cite></blockquote>
<p>
	という訳で、<q>インラインの置換要素っぽい感じでフォーマットします</q>との事。</p>
<h3>
	基本的な使い方</h3>
<p>
	これも、かなり既に色々なところで見る事が出来ますが、一応、まとめだけ。</p>
<pre class="js:firstline[1] css" name="code">div.inline-block {
    display: inline-block;
}
</pre>
<p>
	IE5からIE7に対応するには</p>
<pre class="js:firstline[1] css" name="code">div.inline-block {
    display: inline;
    zoom: 1;
}
</pre>
<p>
	Firefox2以前に対応するには</p>
<pre class="js:firstline[1] css" name="code">div.inline-block {
    display: -moz-inline-box;
}
div.inline-block &gt; div {
    display: block;
}
</pre>
<p>
	上記をまとめたら</p>
<pre class="js:firstline[1] css" name="code">div.inline-block {
    /* 実際にはwidthとか入る */
    display: -moz-inline-box;
    display: inline-block;
    /display: inline;
    /zoom: 1;
}
div.inline-block &gt; div {
    display: block;
}
</pre>
<p>
	といった感じで利用出来ます。<br />
	このブログにはウソが多い（汗）ので、ご利用の際はちゃんと調べてください。。。</p>
<blockquote>
	<dl>
		<dt>
			参考サイト（概要から使い方の例まで）</dt>
		<dd>
			<ul>
				<li>
					<a href="http://yomotsu.net/works/081016cssnite/">書籍などに紹介されていない display:inline-blockについて</a></li>
				<li>
					<a href="http://css-happylife.com/template/page_nav/">ページ送りのサンプル｜CSS Happylife</a></li>
				<li>
					<a href="http://d.hatena.ne.jp/neotag/20091027/1256649851">inline-blockで横並びボックスの高さ揃え的レイアウト（謎</a></li>
				<li>
					&darr;は「隙間が空いちゃうから困るよね」という話<br />
					<a href="http://www.serendip.ws/archives/3028">CSS の inline-block を使って、リストの要素を1列に表示させる</a></li>
			</ul>
		</dd>
	</dl>
</blockquote>
<h3>
	どんな場面で使いたいか</h3>
<p>
	結構、色々あると思うのですが、例として以下を挙げてみます。<br />
	前項の参考サイトの方が具体的だし、説明も分かりやすいと思います。</p>
<ul>
	<li>
		小さいブロック要素とかを横並びにさせたいとき</li>
	<li>
		横並びにした要素を縦中央とか下とかに揃えたいとき</li>
	<li>
		横並びにした要素ををtext-alignでセンタリングしたいとき</li>
	<li>
		floatだと、要素の高さが変わっちゃうと崩れるなぁというとき</li>
	<li>
		...</li>
</ul>
<h2>
	inline-blockを使いたいけどmarginとかをちゃんとしたい場合に困ること</h2>
<p>
	で、ここから本題です。</p>
<p>
	<a href="https://developer.mozilla.org/ja/Whitespace_in_the_DOM" title="Whitespace in the DOM - MDC">White Space Node</a>の扱いがブラウザによって違うためにゴニョゴニョとがんばるか、要素間の改行をなくしたり、コメント入れたりとかの対処法が使われていると思います。</p>
<p>
	こんな感じ</p>
<pre class="js:firstline[1] html" name="code">&lt;ul&gt;
    &lt;li&gt;
    Lorem ipsum dolor sit amet.
    &lt;/li&gt;&lt;li&gt;
    Lorem ipsum dolor sit amet.
    &lt;/li&gt;
&lt;/ul&gt;
</pre>
<p>
	とか、こんな感じ</p>
<pre class="js:firstline[1] html" name="code">&lt;ul&gt;
    &lt;li&gt;
    Lorem ipsum dolor sit amet.
    &lt;/li
    &gt;&lt;li&gt;
    Lorem ipsum dolor sit amet.
    &lt;/li&gt;
&lt;/ul&gt;
</pre>
<p>
	とか、こんな感じ</p>
<pre class="js:firstline[1] html" name="code">&lt;ul&gt;
    &lt;li&gt;
    Lorem ipsum dolor sit amet.
    &lt;/li&gt;&lt;!--
    --&gt;&lt;li&gt;
    Lorem ipsum dolor sit amet.
    &lt;/li&gt;
&lt;/ul&gt;
</pre>
<p>
	です。</p>
<p>
	でも、これって、「納品後は別の会社とかお客さんが管理」とか「CMSとかの都合でガッツリ改行入るよ」とかいう場合は使えないので、CSSだけでがんばる必要がある場合が殆どかと。<br />
	そして、それって<strong>めんどい！</strong>ですよね。。。</p>
<h2>
	解決方法を考えてみた</h2>
<p>
	「結局のところ、White Space Nodeの問題だったら、フォント関連でなんとかなるんじゃ？」という訳で試してみたのがコレ（&darr;）です。</p>
<pre class="js:firstline[1] css" name="code">ul.inline-block-parent {
    display: block;
    font-size: 1px;
    letter-spacing: -1px;
}
li.inline-block-parent {
    display: -moz-inline-box;
    display: inline-block;
    /* 実際にはwidthとか入る */
    font-size: small;
    letter-spacing: normal;
    /display: inline;
    /zoom: 1;
}
</pre>
<p>
	「おっ！上手くいったぽい！」と思ったら、Chromeでは効果がありませんでした。。。</p>
<p>
	で、試しにネガティブletter-spacing（謎）をいじっていたら。。。</p>
<pre class="js:firstline[1] css" name="code">ul.inline-block-parent {
    display: block;
    letter-spacing: -1em; /* ここがキモ */
}
li.inline-block-parent {
    display: -moz-inline-box;
    display: inline-block;
    /* 実際にはwidthとか入る */
    font-size: small;
    letter-spacing: normal;
    /display: inline;
    /zoom: 1;
}
</pre>
<p>
	これでいけそうです。</p>
<p>
	ちなみに、Chrome 5.0.307.11 beta（for Mac）と、Win7 Chrome（本日の時点で最新の）では、空き方が違いました。<br />
	<strong class="attention">* </strong>この点に関して、@<a href="http://twitter.com/neotag">neotag</a> さんから、<q>それって、最小フォントサイズの設定かもしれんから-4pxに根拠ないっぽいです</q>的な（？）アドバイスをいただきました。<br />
	が、結局のトコロいまひとつはっきりしていません（Chromeの使い方がわかってない）。<br />
	が、font-sizeの事を意識するのであれば。。。という事で、親要素でfont-sizeをいじくるのをやめて、letter-spacing:-1emで実現しています。 サンプルなども修正しました（Mar 05, 2010）。</p>
<p>
	試したのは、下記の環境です。</p>
<ul>
	<li>
		MacOSX Safari 4</li>
	<li>
		MacOSX Firefox 3.6</li>
	<li>
		MacOSX Firefox 2</li>
	<li>
		MacOSX Opera 10</li>
	<li>
		MacOSX Chrome 5</li>
	<li>
		WinXP IE6(MultipleIE)</li>
	<li>
		WinXP IE7</li>
	<li>
		WinXP Firefox3.6</li>
	<li>
		Win7 IE8</li>
	<li>
		Win7 Firefox3.6</li>
	<li>
		Win7 Chrome</li>
</ul>
<p>
	以下にもう一度サンプルを</p>
<p>
	<a class="button" href="/assets/file/2010/100304/" rel="demo">View Demo</a> <a class="button" href="/assets/file/2010/iblock.zip" rel="file">Download</a></p>
<p>
	「このブラウザだとダメだった」とか「余白のサイズ変えたらダメだった」とか情報がありましたら、ご一報いただけるととても喜びます。</p>
<p>
	また、@<a href="http://twitter.com/yomotsu">yomotsu</a>さんのスライドにもありましたが、ご利用は計画的に。</p>
]]></description>
<link>http://www.nagomu.me/archives/2010/nagomu100304.html</link>
<guid>http://www.nagomu.me/archives/2010/nagomu100304.html</guid>
<pubDate>Thu, 04 Mar 2010 22:26:09 +0900</pubDate>
</item>
<item>
<title>（今さらだけど）「LESS - Leaner CSS」を試してみた</title>
<description><![CDATA[<p>
	今さら感がありますが、「<a href="http://lesscss.org/">LESS - Leaner CSS</a>」を試してみました。<br />
	従来通り、やっつけ感満載ですが、調べたり試したりした内容を書いてみます。</p>
<p>
	先に書いておくと、「どんな案件でも全部これを使うって感じではない」「むしろ、どういう場合に有効か。。。」「コンパイルした後で再フォーマットしないとちょっと」という感想です。　今のところ。</p>
<blockquote>
	<dl>
		<dt>
			参考サイト</dt>
		<dd>
			<ul>
				<li>
					<a href="http://lesscss.org/">本家</a></li>
				<li>
					<a href="http://blog.kmxs.net/?p=281">extends CSS ? LESS - Learner CSS（の和訳）|kmxslog</a></li>
				<li>
					<a href="http://www.sitepoint.com/blogs/2009/06/30/write-better-css-with-less/">Write Better CSS with Less | sitepoint</a>（ポップアップ出るかも）</li>
			</ul>
		</dd>
	</dl>
</blockquote>
]]><![CDATA[<h2>
	概要</h2>
<p>
	使い方については、参考サイトをご覧ください。</p>
<dl>
	<dt>
		LESS - Leaner CSS</dt>
	<dd>
		<ul>
			<li>
				「レス？ リーナーCSSだし、リース？」といきなり名前がわからな。。。</li>
			<li>
				Sass(Syntactically Awesome Stylesheets)と似てます。 SaaS(Software as a Service)ではない</li>
			<li>
				LESSをCSSにコンパイルするのにgemが必要</li>
			<li>
				rubyやruby-gemsのある環境で</li>
			<li>
				Macだとアプリを使って簡単にコンパイル出来ます</li>
			<li>
				変数、ネスト、ミックスイン、演算が使えます</li>
		</ul>
	</dd>
</dl>
<h2>
	ネストで書ける</h2>
<p>
	とりあえず、コレが一番わかりやすいトコロだと思います。</p>
<pre class="css" name="code">#header {
    width: 960px;
    overflow: hidden;
    .navigation {
        float: right;
        width: 698px;
        overlow: hidden;
        
        li {
            float: left;
            width: 116px;
            
            a {
                display: block;
                width: 116px;
                height: 24px;
            }
        }
    }
    .logo {
        float: left;
        width: 214px;
    }
}
</pre>
<p>
	とか書いたものをコンパイルすると</p>
<pre class="css" name="code">#header {
    width: 960px;
    overflow: hidden;
}
#header .navigation {
    float: right;
    width: 698px;
    overlow: hidden;
}
#header .navigation li {
    float: left;
    width: 116px;
}
#header .navigation li a {
    display: block;
    width: 116px;
    height: 24px;
}
#header .logo {
    float: left;
    width: 214px;
}
</pre>
<p>
	とか、してくれます。</p>
<h2>
	ミックスイン出来る</h2>
<p>
	これは、ちょっと内容を変えながら、何度も使うようなスタイルを、classなどにまとめておいて、プロパティのように使えちゃう機能です。</p>
<p>
	こんな感じで、角丸とか作ったものを</p>
<pre class="css" name="code">/* こんな感じで、角丸とかを用意して */
.round_corner {
    -moz-border-radius: 8px;
    -webkit-border-radius: 8px;
    border-radius: 8px;
}
/* こんな風に持ってきて */
.button {
    background:#a1a1a1;
    border:1px solid #ccc;
    .round_corner; /* 先に作っておいた角丸のclass */
}
</pre>
<p>
	コンパイルするとこんな感じ</p>
<pre class="css" name="code">.button {
    background:#a1a1a1;
    border:1px solid #cccccc; /* 省略してたトコは4桁になるみたい */
    -moz-border-radius: 8px;
    -webkit-border-radius: 8px;
    border-radius: 8px;
}
</pre>
<h2>
	変数を使える</h2>
<p>
	これも文字通り。</p>
<pre class="css" name="code">/* 変数は「@」で。 */
@red: #c00;
@blue: #069;
.border {
    border: 1px solid @blue;
}
.error .border {
    border: 1px solid @red;
}
</pre>
<p>
	とか書いたものをコンパイルすると</p>
<pre class="css" name="code">.border {
    border: 1px solid #cc0000;
}
.error .border {
    border: 1px solid #006699;
}
</pre>
<p>
	といった感じ。<br />
	で、こんな使い方も出来ます。</p>
<pre class="css" name="code">.round_corner (@radius:5px) {
    -moz-border-radius: @radius;
    -webkit-border-radius: @radius;
    border-radius: @radius;
}
.primary_button{
    background:#069;
    border:1px solid #ccc;
    .round_corner(10px);/* 持ってきたスタイルを一部変えたり */
}
</pre>
<p>
	とか書いたものをコンパイルすると</p>
<pre class="css" name="code">.primary_button{
    background:#006699;
    border:1px solid #cccccc;
    -moz-border-radius: 10px;
    -webkit-border-radius: 10px;
    border-radius: 10px;
}
</pre>
<h2>
	演算が出来ます</h2>
<p>
	まあ、これもそのままっちゃ、そのままです。 JSっぽい感覚というか。。。</p>
<pre class="css" name="code">/* 変数 */
@gutter_width: 12px;
@primary_width: 708px;
@secondary_width: 204px;
/* 変数同士の計算 */
@row_width: @primary_width + @gutter_width;
/* 割ったり引いたり */
@half_width:   (@row_width / 2)  - @gutter_width;
@third_width:  (@row_width / 3)  - @gutter_width;
@fourth_width: (@row_width / 4)  - @gutter_width;
@fifth_width:  (@row_width / 5)  - @gutter_width;
@sixth_width:  (@row_width / 6)  - @gutter_width;
@tenth_width:  (@row_width / 10) - @gutter_width;
/* 出力フォーマット */
.prepend,.append,.col{margin-right:@gutter_width;}
.primary        {width:@primary_width;}
.primary .row   {width:@row_width;}
.secondary      {width:@secondary_width;}
.secondary .row {width:@secondary_width + @gutter_width;}
.half  {width:@half_width;}
.third {width:@third_width;}
.fourth{width:@fourth_width;}
.fifth {width:@fifth_width;}
.sixth {width:@sixth_width;}
.tenth {width:@tenth_width;}
</pre>
<p>
	とかすると</p>
<pre class="css" name="code">.prepend, .append, .col { margin-right: 12px; }
.primary { width: 708px; }
.primary .row { width: 720px; }
.secondary { width: 204px; }
.secondary .row { width: 216px; }
.half { width: 348px; }
.third { width: 228px; }
.fourth { width: 168px; }
.fifth { width: 132px; }
.sixth { width: 108px; }
.tenth { width: 60px; }
</pre>
<p>
	こんな感じ。</p>
<p>
	先に、変数同士で演算した方も、フォーマットする時に演算した方も動いてるみたいですね。</p>
<p>
	これは、一回書いて持っておいたら、グリッドがしっかり効いたデザインの時は使い回せる気がします。</p>
<p>
	使うかどうか謎ですが</p>
<pre class="css" name="code">.color{color:#c00 + 111;}
</pre>
<p>
	こんな事も出来るみたいです。</p>
<h2>
	その他</h2>
<p>
	LESSファイルを「@import」みたいな感じで読み込めるみたいです。</p>
<pre class="css" name="code">@import &quot;style&quot;;
</pre>
<p>
	これの状態でコンパイルすると、複数ファイルに「いつも使うやつ色々」「フォームとか」「タイポグラフィ関連」「色とか背景とかspriteとか」「言語違い」みたいに分けたファイルを一気に読み込んで、一枚にまとめちゃったりも出来ます。</p>
<h2>
	ここまで試してみての感想</h2>
<p>
	「テンプレート的なものを設計して、バックエンドの人とかに渡すんだけど、CSSが結構複雑だったりすると、修正が。。。」みたいな時はイイかもしれないです。</p>
<p>
	個人的に気になったのは、ネストした時の動作で、</p>
<pre class="css" name="code">.editable {
    h1,h2,h3,h4,h5,h6{color:#000;font-weight:bold;}
}
</pre>
<p>
	とか書いたものをコンパイルすると</p>
<pre class="css" name="code">.editable h1 {
    color: #000000;
    font-weight: bold;
}
.editable h2 {
    color: #000000;
    font-weight: bold;
}
.editable h3 {
    color: #000000;
    font-weight: bold;
}
.editable h4 {
    color: #000000;
    font-weight: bold;
}
.editable h5 {
    color: #000000;
    font-weight: bold;
}
.editable h6 {
    color: #000000;
    font-weight: bold;
}
</pre>
<p>
	こんな感じになっちゃうんだけど</p>
<pre class="css" name="code">.editable h1, .editable h2, .editable h3, .editable h4, .editable h5, .editable h6 {
    color: #000000;
    font-weight: bold;
}
</pre>
<p>
	こんな感じにして欲しいと思いました。<br />
	パフォーマンスの事とか考えたら、少しでもファイルサイズ落としたいですし。。。（まあ、コンパイル後にフォーマットすればイイけど）</p>
<p>
	「<a href="http://www.spry-soft.com/grids/">960</a>とか<a href="http://code.google.com/p/blueprintcss/">Blueprint</a>みたいのを自作して、書き始めの時だけ使いたい」みたいな用途には使えるかもな。。。でも、全体的には、現状、それほど便利には思えませんでした。　すげーボリュームだったらスピード上がるかなぁ？</p>
<p>
	という訳で、「こんな使い方をしたら早いと思う」みたいのがあったら教えてください。</p>
<p>
	<strong class="attention">* </strong>追記：コーディングに使ってるアプリによっては、プラグインがあるみたいです（例：<a href="http://incident57.com/coda/index2.php">Coda</a>）</p>
]]></description>
<link>http://www.nagomu.me/archives/2010/nagomu100213.html</link>
<guid>http://www.nagomu.me/archives/2010/nagomu100213.html</guid>
<pubDate>Sat, 13 Feb 2010 18:44:23 +0900</pubDate>
</item>
<item>
<title>CodaでCSSのプロパティをソートするプラグイン</title>
<description><![CDATA[<p>
	Twitter上で「CodaでもCSSのプロパティ順を揃えるプラグインがあったらいいのにな」的なつぶやきを見つけたので、「じゃあ、作ってみようか」と思って、とりあえず、「どっかにあるかも？」と探してみたトコロ、Codaのプラグインではないが、とても<a href="http://hail2u.net/blog/coding/perl-sort-css-properties.html">素晴らしいPerlのスクリプト</a>があったので、流用させていただく事にしました。</p>
<p>
	MITだったから多分大丈夫だと思うけど、後で取り下げたりしたらすみません。</p>
]]><![CDATA[<p>とりあえず、そのまま使えそうなスクリプトが見つかってしまったので、自分の作業は「Plug-In Creatorで書き出すだけ」なんですが、カスタムしたい人もいると思うので、その工程を晒しておきます。</p>
<h2>
	スクリプトの入手</h2>
<p>
	Codaのプラグインを探していたら、<a href="http://hail2u.net/blog/">hail2u.net</a>さんにすてきなPerlスクリプトがあったので、それに適当な名前をつけて、デスクトップなどに保存します。<br />
	* もう、本当にそのままコピペでOK。</p>
<p>
	<a href="http://hail2u.net/blog/coding/perl-sort-css-properties.html">CSSのプロパティをソートするPerlスクリプト</a>（via @<a href="http://hail2u.net/blog/">hail2u.net</a>）</p>
<h2>
	Coda Plug-In Creatorでプラグインを書き出す</h2>
<p>
	Coda Plug-In Creatorを起動します（持ってない場合は、<a href="http://www.panic.com/jp/coda/developer/howto/plugins.php">Panicからダウンロード</a>して下さい）。</p>
<p>
	<img alt="Coda Plug-In Creator起動時の画面" height="334" src="/assets/img/blog/2010/pic10012601.png" width="500" /></p>
<p>
	とりあえず、画面左側「コマンド」のところに適当なコマンド名（今回はSortPropertiesとした）を入力し、さっき保存したスクリプトをドラッグします。<br />
	<span class="small">* ショートカットを利用したい場合は、この時にコマンド名横の「ショートカット」をアクティブにして、使いたいショートカットを押すと、設定出来ます。</span></p>
<p>
	<img alt="Coda Plug-In Creator コマンド名を入力してスクリプトをドラッグ" height="334" src="/assets/img/blog/2010/pic10012602.png" width="500" /></p>
<p>
	たぶん、自動的に保存されると余計なお世話なので、実行時の動作は「なし（デフォルト）」のまま。<br />
	入力タイプを「書類」。　出力タイプを「現在の書類と置換」に変更。</p>
<p>
	あとは、名前（今回はSortPropertiesとした）をつけて保存するだけ。</p>
<p>
	保存場所は、Plug-Insが候補として出ると思います。<br />
	普段はそのまま、そこに置いちゃってOK。　どっか、別に保存したい場合は、適当に選ぶと「拡張子codaplugin」で保存されます。</p>
<p>
	<img alt="Coda Plug-In Creator 入出力時の動作を設定" height="334" src="/assets/img/blog/2010/pic10012603.png" width="500" /></p>
<p>
	以上です。</p>
<h2>
	使い方</h2>
<p>
	今までの流れでプラグインを作った場合、適当なファイルを開くとプラグインメニューに「SortProperties」という項目が追加されますので、実行すれば、ソートされます。</p>
<p>
	ソートの規則は<q><a href="http://hail2u.net/blog/coding/perl-sort-css-properties.html">CSS のプロパティをソートするPerlスクリプト</a>（via @<a href="http://hail2u.net/blog/">hail2u.net</a>）</q>に準じますが、独自の並び順を使いたい場合は、スクリプト内でプロパティがズラっと並んでいる部分を書き換えればいけます。</p>
<p>
	ちなみに、シングルラインで書いていた場合、「{」の後と「}」の前に改行が入っちゃうので、プロパティを並び替えた後に最適化系のプラグインなどを使うと幸せになれるかもしれません。</p>
<pre class="js:firstline[1]" name="code">/* ここで言うトコロの「シングルライン」てのは */
.selector1 {property:value;property:value;property:value;}
.selector2 {property:value;property:value;property:value;}
.selector3 {property:value;property:value;property:value;}
/* のコトです。 */
</pre><pre class="js:firstline[1]" name="code">/* このプラグインを使うと&uarr;のが */
.selector1 {
property:value;property:value;property:value;
}
.selector2 {
property:value;property:value;property:value;
}
.selector3 {
property:value;property:value;property:value;
}
/* こんな感じに書き変わります */
</pre>
<p>
	私が確認した限りでは、プロパティの前に「/」を付けたりしてると、独自拡張扱いになって最後の方にまとまります。　個人的にはこれが便利だと感じました。</p>
<h2>
	ダウンロード</h2>
<p>
	作るの面倒な人は下記からダウンロード出来ます。</p>
<p>
	<a class="button" href="/assets/file/2010/css_sort.zip">Download</a></p>
<h3>
	動作が確認されている環境</h3>
<ul>
	<li>
		Mac OS X（10.6）</li>
	<li>
		Coda（1.6.1）</li>
</ul>
<p>
	不具合・リクエスト・質問などはTwitterからどうぞ。</p>
]]></description>
<link>http://www.nagomu.me/archives/2010/nagomu100126.html</link>
<guid>http://www.nagomu.me/archives/2010/nagomu100126.html</guid>
<pubDate>Tue, 26 Jan 2010 09:52:43 +0900</pubDate>
</item>
<item>
<title>Movable TypeのブログでRTボタンを作る</title>
<description><![CDATA[<p>
	今月は、MTOSを4&rarr;5へアップグレードするタイミングで、サーバを移したりしていました。<br />
	ついでに全体的に構成を見直したりしたので、少しづつ、その時に行った作業を記事に起こしていこうと思います。</p>
<p>
	で、<strong>「Movable TypeのブログでRTボタンを作る方法」</strong>について書きます。</p>
<dl>
	<dt>
		前提条件:</dt>
	<dd>
		<ul>
			<li>
				ここで言うトコロのRTは、このブログの記事の内容にコメントを付けてTwitterに投稿すること</li>
			<li>
				HTMLソースの書き出しにはPHPを使う</li>
			<li>
				bit.lyでソースを短くする</li>
		</ul>
	</dd>
</dl>
<p>
	という感じです。<br />
	<span class="small"><strong class="attention">* URL短縮サービスを利用する場合、「APIが落ちてたら」を想定して手を打っておく必要があると思います。</strong></span></p>
]]><![CDATA[<h2>
	概要</h2>
<p>
	まずは「こういうのが書き出されればOK」というソースです。</p>
<pre class="js:firstline[1]" name="code">&lt;a title=&quot;Twetter&quot; class=&quot;retweet&quot; rel=&quot;nofollow&quot; href=&quot;http://twitter.com/home?status=RT%20@nagomu:%20%E5%A4%96%E9%83%A8%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%81%BF%E6%99%82%E3%81%AE%E3%83%91%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%B3%E3%82%B9%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%20http://bit.ly/6pwHzC%20&quot;&gt;retweet&lt;/a&gt;
</pre>
<p>
	後でも書きますが、ポイントは「URLエンコードしておかないと<del>日本語は</del>アウト」なトコロです。</p>
<p>
	これをもうちょっと見やすく、目的別に分離すると。。。</p>
<pre class="js:firstline[1]" name="code">&lt;a href=&quot;http://twitter.com/home?status=RT @nagomu: 外部ファイル読み込み時のパフォーマンスについて http://bit.ly/6pwHzC &quot;&gt;retweet&lt;/a&gt;
</pre>
<p>
	と、こんな感じです。</p>
<p>
	「http://twitter.com/home?status=RT」「@Twitterアカウント」「ブログ記事のタイトル」「bit.lyで短縮した、記事のURL」を書き出せればOKな訳ですね。</p>
<h2>
	bit.lyのAPIで短縮URLを作る</h2>
<p>
	ほとんどの場合、そのままリンクを貼ってしまうとTwitterに書いてもらうには長過ぎます。　で、URL短縮の方法は色々あると思いますが、今回はbit.lyを利用しました。</p>
<ol>
	<li>
		まず、<a href="http://bit.ly/">http://bit.ly/</a>でアカウント（無料のでOK）を作る</li>
	<li>
		「account setting」画面でAPI Keyをコピーしておく</li>
</ol>
<p>
	とりあえずはココまで。</p>
<h2>
	PHPを書く</h2>
<p>
	今回はPHPでbit.lyのAPIを利用します。</p>
<pre class="js:firstline[1]" name="code">&lt;?php
    $retweet =&#39;RT @ここはTwitterのID: &#39;;
    $title =&#39;記事のタイトル &#39;;
    $url =&#39;http://ブログ記事のURL&#39;;
    $login = &#39;ここにbit.lyのID&#39;;
    $key = &#39;ここにbit.lyのAPI key&#39;;
    $api = &#39;http://api.bit.ly/shorten?format=xml&amp;version=2.0.1&amp;login=&#39;.$login.&#39;&amp;apiKey=&#39;.$key.&#39;&amp;longUrl=&#39;.$url;
    $bitly = simplexml_load_file($api);
    $short_url = $bitly-&gt;results-&gt;nodeKeyVal-&gt;shortUrl;
    print &#39;&lt;a href=&quot;http://twitter.com/home?status=&#39;.$retweet.$title.$short_url.&#39;%20&quot; rel=&quot;nofollow&quot; class=&quot;retweet&quot; title=&quot;Twetter&quot;&gt;retweet&lt;/a&gt;&#39;;
?&gt;
</pre>
<p>
	こんな感じです。</p>
<p>
	ただ、前述の通り色々とURLエンコードしてあげないと化ける可能性が高いので、それを踏まえてMTのテンプレートを書きます。</p>
<h2>
	MTテンプレートを書く</h2>
<p>
	半角の空白文字も「%20」としています。</p>
<pre class="js:firstline[1]" name="code">&lt;?php
    $retweet =&#39;RT%20@ここはTwitterのID:%20&#39;;
    $title =&#39;&lt;$mt:EntryTitle encode_url=&quot;1&quot;$&gt;%20&#39;;
    $url =&#39;&lt;$mt:EntryLink$&gt;&#39;;
    $login = &#39;ここにbit.lyのID&#39;;
    $key = &#39;ここにbit.lyのAPI key&#39;; &lt;mt:Ignore&gt;例：R_123456789f123456a123456c&lt;/mt:Ignore&gt;
    $api = &#39;http://api.bit.ly/shorten?format=xml&amp;version=2.0.1&amp;login=&#39;.$login.&#39;&amp;apiKey=&#39;.$key.&#39;&amp;longUrl=&#39;.$url;
    $bitly = simplexml_load_file($api);
    $short_url = $bitly-&gt;results-&gt;nodeKeyVal-&gt;shortUrl;
    print &#39;&lt;a href=&quot;http://twitter.com/home?status=&#39;.$retweet.$title.$short_url.&#39;%20&quot; rel=&quot;nofollow&quot; class=&quot;retweet&quot; title=&quot;Twetter&quot;&gt;retweet&lt;/a&gt;&#39;;
?&gt;
</pre>
<p>
	MTが書き出す部分は、「encode_url=&quot;1&quot;」をしておけば、ほぼ問題ないはずです。</p>
<p>
	私の場合は、全てのページがPHPとして動作するので、このテンプレートを直接、個別記事アーカイブに埋め込んでいます。<br />
	Wordpressとかだったら、当然同じ感じで作れますね。</p>
<h2>
	まとめ</h2>
<ul>
	<li>
		どうせコメントもトラックバックもつかないので、TwitterとかFacebook用のボタンをつけた</li>
	<li>
		URLはbit.lyで短縮してみる</li>
	<li>
		bit.lyのAPIはPHPで利用してみた</li>
	<li>
		空白文字もふくめてURLエンコードする</li>
</ul>
]]></description>
<link>http://www.nagomu.me/archives/2010/nagomu100121.html</link>
<guid>http://www.nagomu.me/archives/2010/nagomu100121.html</guid>
<pubDate>Thu, 21 Jan 2010 12:16:24 +0900</pubDate>
</item>
<item>
<title>外部ファイル読み込み時のパフォーマンスについて</title>
<description><![CDATA[<p>
	以前、<a href="/archives/2009/nagomu090831.html">外部CSSファイルを読む時のパフォーマンス</a>という記事で、@importの方法などについて書きましたが、メモ程度で書いていたとは言え、浅すぎたので、もう一度書きます。</p>
<p>
	前回とは結論が変わりました。<br />
	ただ、ケースバイケースではあります。</p>
]]><![CDATA[<h2>
	概要</h2>
<p>
	「cssに関しては、多くのブラウザが並行で読み込む事が出来るけど、IE6とかIE7とかだとその辺が微妙だから注意してね」という感じです。</p>
<pre class="js:firstline[1]" name="code">link - import.css
       @import a.css
       @import b.css
</pre>
<p>
	とかしてると、並行で読み込んでくれなかったり、Javascriptを先に読み込まれちゃったりして、問題が起きがちだから複数読む時はlinkを並べようぜ。</p>
<pre class="js:firstline[1]" name="code">@import a.css
@import b.css
</pre>
<p>
	は、アリだけど、@importの数が増えてくると全てを並行では読んでくれないから、やっぱりlinkがイイぜ（前回は、ここが抜けてた）。</p>
<h2>
	自分の場合の基本姿勢</h2>
<p>
	特にレギュレーションなどが提示されない場合、以下の感じで書いてます。</p>
<ul>
	<li>
		たとえターゲット以外のブラウザでも、レイアウトが崩れるのはちょっと</li>
	<li>
		レイアウトが崩れるくらいなら、CSS無しの方がイイ（HTMLがまともなら内容は問題なく閲覧できる）</li>
	<li>
		CSS読ませないブラウザでも、フリーズしちゃうとかはあまりにも。。。</li>
	<li>
		HTMLのソースに余計な事書くのは本末転倒だから、コンディショナルコメントは使いたくねえ</li>
</ul>
<p>
	ただ、最近は「スピード重視！」ブーム（個人的に）なので、画像の書き出しやCSS / JSなどの書き方もスピードを気にして、良く触りそうなトコロ以外はシングルラインで書いたりしてます。</p>
<h2>
	で、どうするか</h2>
<p>
	結局、linkで読み込むのが一番固いようです。</p>
<p>
	ただ、それだと「IE5以下には読ませたくない！」とかがやりにくいですね。<br />
	ブラウザごとに対応を考えてみます。</p>
<ul>
	<li>
		新しいのはとりあえずママでOK</li>
	<li>
		ネスケ4とかネスケの古いのはmediaにscreen以外を入れておけばOK</li>
	<li>
		ターゲット以外のIE（まあ、6未満とかが多いでしょうか）は、とりあえずIE8.jsとか使って、ver5の世代だけ救出</li>
	<li>
		IE4以下は、まあ、いないと思うので無視します。 使ってる人ゴメンなさい。</li>
	<li>
		MacIEこれが問題です。 検討中ですがMacでクラシック使ってる人は大変ですよね。。。</li>
</ul>
<h3>
	どう書くか</h3>
<p>
	上記を踏まえて、どう書くかですが。。。</p>
<pre class="js:firstline[1]" name="code">&lt;link ... media=&quot;&quot;all /&gt; &lt;!-- という感じでまずCSSを --&gt;
&lt;link ... media=&quot;&quot;all /&gt;
&lt;script ...&gt;&lt;/script&gt; &lt;!-- という感じで共通のJavascriptを --&gt;
&lt;script ...&gt;&lt;/script&gt; 
&lt;!--[if lt IE 8]&gt;&lt;script ...&gt;&lt;/script&gt; &lt;![endif]--&gt; IE8より古いIEだけ、IE8.jsを読み込む
&lt;!--[if lte IE 6]&gt;
&lt;script ...&gt;&lt;/script&gt; &lt;!-- 必要ならIE6以下は透過png対応JSを読み込む --&gt;
&lt;script ...&gt;&lt;/script&gt; &lt;!-- 透過pngのライブラリ用のJS（セレクタとか指定してるヤツ） --&gt;
&lt;![endif]--&gt;
</pre>
<p>
	と、まあ、こんな感じで落ち着きました。</p>
<p>
	微妙だが。。。（汗</p>
<p>
	コンディショナルコメントを使っている部分はサーバサイドで処理したい気もします。<br />
	また、CSSに関しては、たいがいインラインでハックを使っています（自分一人で管理している事は少ないので、見通しが悪くなるから、ie6.cssとかは作らない）。</p>
<p>
	IE8.jsを使うとはいえ、JSがオフだったらダダ崩れってのは避けたいですので、一応、ターゲットブラウザに関してはCSSでも互換対応します。</p>
<h2>
	参考サイト</h2>
<ul>
	<li>
		<a href="http://ie7-js.googlecode.com/svn/version/2.0%28beta%29/">IE7.js / IE8.js（Google Code）</a></li>
	<li>
		<a href="http://screw-axis.com/2009/06/11/web-google-page-speed%E3%81%A7%E3%82%B5%E3%82%A4%E3%83%88%E3%82%92%E9%AB%98%E9%80%9F%E5%8C%963/">Google Page Speedでサイトを高速化(3) | Screw-Axis</a></li>
	<li>
		<a href="http://code.google.com/intl/ja/speed/page-speed/docs/using.html">Page Speed（Google Code）</a></li>
	<li>
		<a href="http://developer.yahoo.com/yslow/">YSlow（Yahoo!）</a></li>
</ul>
]]></description>
<link>http://www.nagomu.me/archives/2009/nagomu091224.html</link>
<guid>http://www.nagomu.me/archives/2009/nagomu091224.html</guid>
<pubDate>Thu, 24 Dec 2009 18:37:39 +0900</pubDate>
</item>
<item>
<title>MTOS5で使いたい（使いそう）なプラグインを考えてみた</title>
<description><![CDATA[<p>
	<abbr title="Movable Type">MT</abbr>5がリリースされましたね。 そして、<a href="http://www.movabletype.jp/opensource/"><abbr title="Movable Type Open Source">MTOS</abbr></a>も5が公開されています。<br />
	ビジネス用途のMTとオープンソースの違いは、ざっくりですが&ldquo;「カスタムフィールド」「コミュニティ」などの機能があるかどうか&rdquo;で、これは4の頃と同じです。<br />
	そんなMTOSを使う場合、どんなプラグインがあったらカスタマイズが容易か考えてみました。<br />
	まあ、ケースバイケースですが。。。</p>
<p>
	以下、MTOS5での動作は未確認ですが、MT5で動いているものは大概大丈夫だと思われます。</p>
]]><![CDATA[<h2>
	CKEditor</h2>
<p>
	記事入力画面で、<a href="http://ckeditor.com/">CKEditor</a>を利用するプラグインです。<br />
	私の場合（個人的にですが）、「大量の入力項目を埋める」のが面倒だと感じるので、WYSIWYGでテンプレートを持っておいて、その組み合せで作るような仕組みを提案する場合が多いです。<br />
	という訳で、WYSIWYGのプラグインは必須な訳ですが、CKEditorプラグインはとても良く出来ているので、ほとんどの場合使うと思います。</p>
<p>
	<a href="http://tec.toi-planning.net/mt/ckeditor/ckeditor-for-movable-type/">CKEditor for Movable Type とは - ToI</a></p>
<h2>
	UploadDir</h2>
<p>
	アップロードするファイルの拡張子によって、アップロード先のディレクトリを振り分けるプラグインです。<br />
	これは、MT3の頃から利用させていただいておりますが、こういうのを用意しておかないと「ルートに大量の画像ファイルが。。。」なんて事になりがちなので、とても良いと思います。<br />
	プラグインを使わずとも対処出来ますが、プラグインの方が良い気がします。</p>
<p>
	<a href="http://labs.m-logic.jp/cat2/uploaddir/">エムロジック放課後プロジェクト: UploadDir</a></p>
<h2>
	VarExpand</h2>
<p>
	変数の機能を拡張するプラグインです。<br />
	MT4からは、かなり色々とプログラムちっくな事が出来るようになりましたが、変数同士の計算とかはちょい面倒。<br />
	そんな時にこのプラグインが大活躍します。<br />
	MT5で試した限りでは、ちょいと手を加えないとダメっぽかったですが、そのウチ対応して下さるかと。</p>
<p>
	<a href="http://www.h-fj.com/blog/archives/2008/04/22-135131.php">変数の機能を拡張するプラグイン - The blog of H.Fujimoto</a></p>
<h2>
	WriteToFile</h2>
<p>
	1つのテンプレートから複数のファイルを書き出せるようにするプラグインです。<br />
	アイディア次第で、様々な条件でファイルの書き出しが可能です。</p>
<ul>
	<li>
		ページを分割する</li>
	<li>
		トラックバックとかコメントをJSとかJSONとかで書き出す</li>
	<li>
		フィールドの値を配列として扱って、その分だけファイルを書き出す</li>
</ul>
<p>
	などなど、工夫次第で今まで「無理！」と思っていた事が出来るようになるかも？</p>
<p>
	<a href="http://www.h-fj.com/blog/archives/2008/09/09-102944.php">テンプレートの再構築結果を部分的にファイルに出力するプラグイン - The blog of H.Fujimoto</a></p>
<h2>
	SortCatFld</h2>
<p>
	カテゴリやフォルダなどのソートに役立つプラグインです。<br />
	今後、MT5では標準で出来るようになるのかもしれない（？)</p>
<p>
	<a href="http://www.h-fj.com/blog/archives/2009/09/24-190615.php">カテゴリとフォルダを並べ替えるプラグイン - The blog of H.Fujimoto</a></p>
<h2>
	その他</h2>
<p>
	いい感じのが見つかれば利用させていただくと思いますが、下記は、案件毎に必要なものを自作予定。</p>
<ul>
	<li>
		必要なフィールドを追加するプラグイン</li>
	<li>
		headにscriptとかstyleを書けるようにするプラグイン</li>
	<li>
		正規表現で置換とかするプラグイン</li>
</ul>
<p>
	と、このくらいあれば、大概の案件はこなせそうな気がします。<br />
	来月は2週目くらいに余裕が出来そうな気がするので、その頃、もうちょっと突っ込んだ内容が書けるといいな。。。と思っています。</p>
]]></description>
<link>http://www.nagomu.me/archives/2009/nagomu091127.html</link>
<guid>http://www.nagomu.me/archives/2009/nagomu091127.html</guid>
<pubDate>Fri, 27 Nov 2009 18:35:11 +0900</pubDate>
</item>
</channel>
</rss>
