『はてな記法』というと、 はてなダイアリーを含めた、はてなの各サービスで利用可能な、 HTMLの省入力機能。 基本的には、wikiでの記法を元に設計されている…んだったっけ? はてな記法とは - はてなダイアリー 覚えるのに、少し時間は必要だけど、 慣れてしまうと非常に使いやすい。 特に、引用、脚注、見出し、リスト辺りは、覚えるとかなり楽です。 というわけで、これを、 MovableTypeでエントリを書くときにも使えないかな、と探したところ、 やはりありました。 さすが。 プラグインを利用し、 それで自動的に変換する…ということのようですね。 (適当だけど) 開発/配布されているのは、このあたり。 mt-sukeroku2 β3公開 (ささやかなる実験場の開発室)

■ 実際に使ってみる。

紹介しただけで、『じゃ、そんな感じで!』とか終わるのも気持ちが悪いので((端からそんな気はなかったけれども))、 実際に使ってみることにします。

■ インストール

インストールは非常に簡単。 ダウンロードしてきたファイルを解凍すると、以下の通り、 2つのフォルダと、1つのファイルが出てきます。 -extlib -plugins -asin_js.cgi 多分、元々あったファイルと名前がかぶることはない…と思うので(多分)、 上記3つを、MTのインストールディレクトリにアップデート。 以上。 まぁ他のプラグインでもそうですが、 特に設定は必要ないみたいですね。 便利。 実際に使える機能については、この辺りのエントリを参照のこと。 mt-sukeroku-plus <はてなダイアリー風TextFormat> 書き込みテスト&書式解説 (ささやかなる実験場の開発室) 全てとは行かないみたいですが、 文章を書く上で必要な要素の殆どは網羅できています。 はてな記法を使ったって、 入力方法を覚える、それを記号的に使うという点で同じじゃないか、とも思うんですが、 (少なくとも僕は思います) ただ実際に書いてみると、終了タグが要らないだけでも随分と違う。 リストとか。見出しとか。 リストなんか、タグ書くより、はてな記法の方が、 見て、直感しやすいし。 …とか書いておいて、 上手く使えてなかったらこのエントリはボツになるのだけれども…(苦笑)

■ テスト。

何か適当に文章を書き、『改行設定』から、『Sukeroku2(HatenaDiaryLike)』を選択して、保存。 これで、そのエントリは、はてな記法で変換されます。 …お、上手くできました。 しかし、なんだな。 はてな記法に忠実なのは良いのだけど、 改行すると全部、一段落と見なしてしまうんだな。 このサイトでは、<p>は自動的に上下に1emマージンを取ることになってるんで、 行間が空いてしまうな。 ま、これは、CSSで対応しろよ、ってことか。 そうですか。 まぁ、そうだな。 一応、extlib/Text/Sukeroku/HatenaDiary.pmをいじってやれば、 その辺の修正は出来るような気がするけど、 まー影響がえらいでかいので、多分、凄い面倒になると思う(苦笑) というわけで。おまけ。

■ (追記その1)改行設定で、CSSを使い分ける。

mt-sukeroku2.plの、105行目。 >| return $text; |< となっているところを、 >| return '<span class="' . $format . '">' . $text . '</span>'; |< とすることで、hatenaというクラス名の付いたspanで書き出すことが出来ます。 で、CSSを適用してやれば、一件落着。 他の改行設定で書いたエントリに影響なく、 このエントリのみ、<p>を潰せます。 ま、はてな記法を使おうという人は、 この件(全て<p>で囲まれる)は既に納得済なんだと思いますが。

■ (追記その2)脚注のリンク先を変更

使ってみて、もう一つ、気になったこと。 このプラグイン、リンクのターゲットが一括なんですよね。 Kiseru.pmの中で、targetを指定できるのだけど、 それが全体に反映されるみたい。 んで、デフォルトの設定では、_blankに設定されている。 まぁ、リンクと言えば、大体は、外部リンクなので、 それ自体殆ど問題ないのだけど、 唯一、脚注に関する部分だけは、問題かなぁ、と。 脚注の見るために、別ウィンドウが開くってのはちょっとどうなんでしょうかね。 かといって、設定を_selfに変更してしまうと、 外部リンクも全部、同じウィンドウに表示されてしまうわけで。 これはこれでよろしくない。 というわけで、ちょっといじってみた。 最初、脚注の部分で、targetを指定しようかと思ったのだけど、 それをやっても意味がないので、 (targetが_selfであってなおかつ、JavaScriptで別ウィンドウが開いてしまう) このリンク作成は、脚注のものですよーっていう引数を渡すことにする。 具体的には、 BaseFormat.pmの、 formatFootnoteAnchor、formatFootnoteBodyの、 下から3行目のところに、 >| $attr{'targetkey'} = 'footnote'; |< を入れる。 んで、BaseElement.pmの方は、 110行目の、 >| $attr{'onclick'} = "window.open(this.href); return false;"; |< この部分に、 >| if($attr{'targetkey'} ne 'footnote'){ $attr{'onclick'} = "window.open(this.href); return false;"; }else{ delete $attr{'targetkey'}; } |< これを追加。 ま、要するに、脚注に関するリンクの時は、 別ウィンドウを開くスクリプトを入れないようにする、と。 まーもの凄く適当なhackですけどねぇ。 思うとおりに動くから、ま、いっか。

■ 関連リンク

mt-sukeroku2 β3公開 (ささやかなる実験場の開発室) MovableType用TextFormatプラグイン mt-sukeroku-plus.pl 導入ガイド (ささやかなる実験場の開発室) mt-sukeroku-plus <はてなダイアリー風TextFormat> 書き込みテスト&書式解説 (ささやかなる実験場の開発室) はてなダイアリーのヘルプ - はてな記法一覧