Movable Type タグライブラリ for Dreamweaver 機能拡張のソースを公開してみた

ここのところ良いネタがなく、おしゃべりが停滞気味ではありますが。。。 w

gabs.log|おしゃべり好きなWEB制作者のたわごと:
http://gabs.cc/blog/

こちらで公開していた ZXP ファイルのソースを Github のリポジトリで共有することにしました。
ご存知ない方へザックリ紹介すると、MT タグとモディファイアをコードヒントに表示できるようになる Dreamweaver 機能拡張です。

dreamseeker/MovableType-TagLibrary-for-DwExtension:
https://github.com/dreamseeker/MovableType-TagLibrary-for-DwExtension

なぜ共有することにしたのか?

制作環境の変化に伴い、コーディングは SublimeText メインで作業するようになりました。
Dreamweaver といえば、この機能拡張をアップデートした際に動作確認をしたり、イメージマップや複雑な表組みの作成で利用する程度。。。

さらに、先日の記事(イメージマップのコードを生成する HTML Imagemap Generetor を作ってみた)で紹介したツールを用意できたため、Adobe Creative Cloud を解約。手元で動作確認する環境が、なくなりました(。-_-。)

とはいえ、Google アナリティクスのレポートを見ると機能拡張の紹介記事にぽつぽつアクセスがあるため、このまま放置するよりもソースを公開して(もしいらっしゃるなら)必要とされる有志の方にアップデートしていただいた方が良いのかな?と考えた次第です。

ということで、大まかなアップデート方法をまとめておきます。

Movable Type タグライブラリの修正方法

新しく MT タグを追加するには、3つの工程が必要です。
モディファイアのみを修正する場合などは、3. に該当する .vtm ファイルを調整します。

  1. source/MovableType_TagLibrary.mxi と source/TagLibraries/TagLibraries.vtm に file および tagref ノードを追加
  2. tagref ノードの file 属性の指定先へ新しい .vtm ファイルを作成
  3. 前述の .vtm ファイルに MT タグやモディファイアに関する定義を追加

1. MovableType_TagLibrary.mxi の file ノード記述例

<file source="TagLibraries/mt/6/Block/MTHasNoParentFolder.vtm" destination="$Dreamweaver/Configuration/TagLibraries/mt/6/Block/" />

MovableType_TagLibrary.mxi の file ノードは、機能拡張のインストール / アンインストール時に ZXP 内にある source 属性で指定されたファイルを destination 属性のパスへ追加 / 削除するために必要となります。

2. MovableType_TagLibrary.mxi / TagLibraries.vtm の tagref ノード記述例

<tagref file="mt/6/Block/MTHasNoParentFolder.vtm" name="HasNoParentFolder" />

MovableType_TagLibrary.mxi および TagLibraries.vtm の tagref ノードには、file と name 属性を記述します。

file 属性は前述の file ノードと同様に TagLibraries.vtm から見た相対パス、name 属性にはタグ名の先頭から「MT」を除いた文字列を指定します。上記サンプルでは「<mt:H」でコードヒントに絞り込み表示されるようになります。

なお、コードのカラーリングを分ける目的から、ブロックタグとファンクションタグの定義先をそれぞれ別にしていますので、注意してください。

3. ブロックタグの記述例(source/TagLibraries/mt/6/Block/MTHasNoParentFolder.vtm)

<tag name="MTHasNoParentFolder" casesensitive="yes" endtag="yes">
  <tagformat nlbeforetag="0" nlaftertag="0" />
  <attributes>
  </attributes>
</tag>

ブロックタグでは、tag ノードの endtag 属性を yes にし「</」で閉じタグを自動挿入するようにします。

3. ファンクションタグの記述例(source/TagLibraries/mt/6/Function/MTDataAPIScript.vtm)

<tag name="MTDataAPIScript" casesensitive="yes" endtag="no">
  <tagformat nlbeforetag="0" nlaftertag="0" />
  <attributes>
    <attrib name="_default" casesensitive="yes" type="text" />
    <attrib name="capitalize" casesensitive="yes" type="enumerated">
      <attriboption value="1" />
    </attrib>
  </attributes>
</tag>

モディファイアは、attributes ノード内に定義します。

attrib ノードの name 属性はモディファイア名です。
値を直接入力する場合は type="text"、キーワードから選択する場合は type="enumerated" とし、attriboption ノードでキーワードを指定します。

なお、こちらのコミットの差分MTEntries.vtmなどを参考にしていただくと、判りやすいと思います。

ZXP ファイルの作成方法

本来であれば、Adobe Extension Builder あたりを使えばよいのかもしれませんが。。。
ここでは簡単に Adobe Extension Manager CS6 でパッケージ化する方法をご紹介しておきます。

Adobe Extension Manager CS6のダウンロード:
http://www.adobe.com/jp/exchange/em_download/em6_download.html

Adobe Extension Manager CS6 を起動したら、「ファイル」メニューにある「ZXP 機能拡張のパッケージ化」を選択します。

スクリーンショット

ファイル選択ダイアログで source/MovableType_TagLibrary.mxi を指定し、パッケージを保存すれば完成です。

やってみて

なぜか「うちの子をよろしくお願いいたします」という心持ちになったとか、ならないとか w