Addicted to Mac

こころおどるコンピュータ。

MT4 Tag Concierge for Coda

text:
MT4 Tag Cincierge for Coda

Mac OS X用シングルウインドウWeb開発ツール「Coda」のHTMLモードにMovable Typeのタグ補完機能を実装する機能拡張、“MT4 Tag Concierge for Coda”をご用意いたしました。その名の通りMovable Type 4対応です。Codaユーザのみなさま、快適なMTコーディングをご堪能下さい。

ちょっと仰々しくアプリケーションっぽいタイトル画像まで作ってしまったのですが、機能拡張といっても大したことはありません。Mac OS Xプロパティリストフォーマットに準拠したXMLファイルです。

前回のエントリでCodaのパッケージ内にあるAutocompleteAdditions.txtに手を加えればタグ補完機能の拡張ができるかも。。というお話しをしましたが、実はそのファイルは無関係で、同階層にあるCodaCompletion.plistこそがタグの補完機能を定義するファイルであることが分かりました。このファイルをいろいろ解析・試行錯誤した結果、HTMLモードのタグ補完機能を拡張するかたちでMTタグを実装することができました。

なお、MT4 Tag Concierge for Codaで提供するCodaCompletion.plistを、オリジナルと区別する便宜上単にMT4 Tag Concierge for Codaと呼ぶものとします。

MT4 Tag Concierge for Codaの特徴

MT4 Tag ConciergeはCodaのHTMLモードに対し、「Movable Typeテンプレートタグリファレンス」内に記載のある全てのMTタグの補完機能を実装します。タグだけでなく、それに対応するモディファイア(アトリビュート)やパラメータ(プロパティ)の補完も可能です。「<$MTCommentPreviewAuthorLink$>」のような、入力している間に一日の大半が終わってしまいそうなうんざりするほど長いMTタグの入力に、もう頭を悩ませる必要はありません。インクリメンタルにMTタグの入力をサポート。「ヒントバー」への簡易ヘルプの表示もサポートします。

ダウンロードとインストール方法

mt4tc.dmg

mt4tc_v1.00.dmg
(ver.1.00)

右にあるアイコンをクリックし、Mac OS Xディスクイメージをダウンロードしてください。ディスクイメージを展開して開くと、次のようなウィンドウが現れます。

CodaCompletion.plistを隣のResoucesエイリアスにドラッグ&ドロップし上書きコピーすればインストールは完了します。しかしその前に注意。この機能拡張はCodaのデフォルトリソースへ変更を加えるものです。CodaCompletion.plistの実体は冒頭でもお伝えしたとおり単なるXMLファイルですので、プログラムそのものを改変するものではありませんが、オリジナルのファイルが無くなるのが心配あるいはアンインストールを簡単にしたいという方は先にResoucesエイリアスを開き、オリジナルのコピーを取っておいてください。

MT4 Tag Concierge for Codaディスクイメージ

Resoucesエイリアスが機能しないという方はアプリケーションフォルダ内のCodaアイコンを右クリックし、「パッケージの内容を表示」をクリック、下記のパス内にCodaCompletion.plistをコピーすればOKです。

Coda.app/Contents/Resources/Modes/HTML.mode/Contents/Resources

なお、Codaのバージョンアップをした場合にはCodaCompletion.xmlも新しいもので上書きされてしまいますので、その場合にはMT4 Tag Concierge for Codaを再度インストールする必要があります。

アンインストール方法

オリジナルのCodaCompletion.plistを保存されている方は、それを再び上書きコピーしていただければアンインストール完了となります。オリジナルが無いというかたはCodaそのものをサイトからダウンロードしてきて再インストールすればOKです。

動作上の問題点

MT4 Tag Concierge for Codaが提供するタグ補完機能には、現状以下の2点の問題があります。これは不具合というよりはCodaの仕様による制限というもので、Coda側の仕様が変わらない限りは改善は難しいと思われます。

まず、モディファイアを必要とする(あるいは使用可能な)MTブロックタグを補完する場合、開始タグの「>」を入力した直後にCodaにより閉じタグが自動的に挿入されますが、上図の例のように閉じタグ内が全て大文字表記に変換されてしまいます。

Codaにはもともと「開始タグの表記に1文字でも大文字があれば閉じタグを全て大文字に揃える」という補完機能が備わっており、その影響を受けるためです。これは強制的なもので、ファイル内の記述方法を変えるだとかリソース内の別の環境設定ファイルを変更することでは制御できず、Codaのプログラムそのものに改変を加える必要があり、回避できません。開始タグ内は正常な表記になりますので、閉じタグ内へコピー&ペーストしてあげてください。閉じタグを手入力するよりは面倒でないと思います。

通常、HTMLの記述でタグ中の表記を大文字・小文字混在で行うことがないためある意味仕方のないことですが、強制的に行うかどうかのオプションがぜひ環境設定に欲しいところですね。

ちなみにMT4 Tag Concierge for Codaは、「HTMLモード」のタグ補完を拡張するものですが、実は「MT-HTMLモード」のように構文モード自体を増やすことも可能です。その場合には閉じタグの補完も上記のような問題が発生せず、正常に動作することが確認できました。しかし。どういうわけかこの場合にはモディファイアやパラメータの補完機能が動作しなくなるという別の問題が発生します。どうやらモディファイアやパラメータの補完に関しては、構文モードによって動作をする・しないの制限がCoda側に予め設定されているようです。これもプログラムの仕様で、制御はできません。

もし<MTEntries> 〜 </MTENTRIES>のように開始タグと終了タグの表記が揃っていないままテンプレートを作ってしまうと、構築時に「<MTEntries>タグが閉じられていません」とエラーが発生してしまうため、これはちょっと痛い問題なのですが、モディファイアやパラメータの補完が出来なくなるよりはましだろうという判断でMT4 Tag Concierge for Codaではこの仕様としています。

2点目は、モディファイアを必要とする(あるいは使用可能な)MTファンクションタグを補完する場合です。通常、タグの始まりと終わりはそれぞれ「<」「>」で記述しますがMTファンクションタグの場合には「<$」「$>」を使用します。Codaのタグ補完機能は当然このような特殊な記述をサポートしていないため、いろいろ試行錯誤したものの通常の定義方法ではどうしても「$>」の補完をすることが出来ませんでした。

そのため、上図のように「$>」もモディファイアの一つとして候補に現れるような設定としました。

この場合、「$>」を確定させたときに以下のように「$>」の前に余計なスペースが1つ入ってしまうことになります。これも少し面倒なのですが、気になるという方は手動で削除していただく他無いようです。ちなみにもし削除し忘れたとしても、この場合にはエラーになりません。

免責事項その他

MT4 Tag Concierge for Codaの使用により万が一発生した不具合や損害に関しての責任はWORLD ENDINGでは負えません。上記で説明したとおり、既存のリソースに改変を加えるものであるということを十分にご理解いただいた上、自己責任でお使い下さい。(...と脅すように書いてしまいましたが、何度も言うようにただのXMLファイルです。)

タグの表記が誤っている、ヘルプの内容が異なる、対応しているはずのモディファイアが表示されない、など修正事項のほか要望等もありましたらご連絡いただけると幸いです。