ラベル Dreamweaver Extension の投稿を表示しています。 すべての投稿を表示
ラベル Dreamweaver Extension の投稿を表示しています。 すべての投稿を表示

2009-01-12

Dreamweaver で jQuery API のコード補完ができる jQuery API extension for Dreamweaver

こんにちは。なかじまんです。

Dreamweaver で jQuery API のコード補完ができる jQuery API extension for Dreamweaver というのがあり、さっそくインストールしてみました。

jQuery API extension for Dreamweaver | XTND.US - Xtnd urslf! Extensions for Adobe Dreamweaver, Drupal, jQuery, Flex, Fireworks, Prototype, APIs
Reduce tons of typing. If you are into jQuery and use Dreamweaver then you really need this extension. Let us save you tons of time by reducing keystrokes with our jQuery API extension for Dreamweaver which provides code coloring, Snippets, and code hints that list every jQuery and jQuery UI function for you.
インストールは、Download the extension からアーカイブをダウンロードし、Extension Manager で登録するだけです。インストールすると、↓こんな感じで jQuery API のコード補完ができるようになります。



これは絶対に手放せないというほとではありませんが、普段使わない API とか、API の使い方を度忘れしたときなど、曖昧な記憶を呼び出すのに役立ちます。また、jQuery を使っていると、ある一定の API のみを使ってパターン化してくる傾向があるのですが、そのシーンに即した別の API があることに気が付くという効果もありそうです。

前述の引用だと jQuery UI API のコード補完も含むとあります。jQuery UI の知識は浅いので、どのくらい役立ちそうかは判断できていません。もしかすると jQuery UI のコード補完が肝だったりするのかも。

2008-06-26

Dreamweaver Extensionの開発にチャレンジしてみる (その2)

Dreamweaver CS3の体験期間が過ぎてしまい記事の確認ができなくなってしまうという何とも情けない状態に陥っていたのですが、何とか確認環境を整えたので続きを投稿しますw

前回はmicroformats拡張機能を参考にmxiファイルを作るところまででした。ではまず作成したmxiファイルの中身を簡単に説明します(※)。

※ファイルフォーマットの詳細が知りたい方は「The Extension Instration File Format」を参照してください。
<macromedia-extension name="Aiueo" version="0.1.0" type="Suite">
<author name="aquilegia" />
<products>
<product name="Dreamweaver" version="9" primary="true" />
</products>
<description><![CDATA[
あいうえお機能拡張。
]]></description>
<ui-access><![CDATA[
「ヘルプ」メニューから「Aiueo.htmlを開く」を選択して実行する。
]]></ui-access>
<license-agreement><![CDATA[
]]></license-agreement>
<files>
<file source="Aiueo.html" destination="$dreamweaver\Configuration\Menus\Aiueo\" />
</files>
<configuration-changes>
<menu-insert insertAfter="DWMenu_Help_About">
<separator />
<menuitem id="DWMenu_Help_Aiueo" name="Aiueo.htmlを開く"
enabled="true" file="Menus/Aiueo/Aiueo.html" />
</menu-insert>
</configuration-changes>
</macromedia-extension>

このファイルはXML形式でmacromedia-extensionタグをルート要素に拡張機能の情報を記述しています。中には日本語を含めることができ、今回はWindows-31Jで保存したところencoding属性を指定しなくても文字化けすることなく表示されました。

ルート要素のname属性、version属性と子要素として追加したauthor要素、description要素、ui-access要素、license-agreement要素はAdobe Extension Managerで拡張機能をインストールした際に表示される情報のようで、今回は適当な内容です。

重要なのはproducts要素、files要素、configuration-changes要素です。
products要素にはどのAdobe製品の拡張機能をサポートしているかを書きます。今回はDreamweaver CS3(バージョン9)なので「<product name="Dreamweaver" version="9" primary="true" />」と書きました。primary属性はオプションで、今回指定したプロダクトは一つなので付けなくても問題ないです。version属性は間違えると拡張機能をインストールする際にAdobe Extension Managerに怒られます。試しにversion属性に10を指定してインストールすると次のダイアログが表示されました。


次のfiles要素は「この拡張機能はこれらのファイルを使ってますから、拡張機能ファイル(xmp)を作る際は取り込んでくださいね。」というもので、files要素の配下にfile要素で使用ファイルを書いておくと、拡張機能ファイルを作成する際に取り込んでくれます。今回はAiueo.htmlファイルを作ったのでそれを書きました。
最後にconfiguration-changes要素ですが、これが一番厄介でした。microformats拡張機能はバーに項目を追加してますが、メニューには追加していないのでそのまま真似ることができず、しょうがないので説明書(The Extension Instration File Format)を眺めたところ、configuration-changes要素の下にはmenu-insert要素を書けることがわかり、そこから順々に調べていってメニュー項目を追加する設定を書くことができました。ポイントはmenu-insert要素のinsertAfter属性で、この属性には追加したい場所の直前の項目IDを設定する必要があるのですが、どうやって調べてよいのかわかりませんでした。その為、一度この属性に適当な値を指定して拡張機能をインストールし、以下のパスにMenus.xmlというDreamweaverのメニュー構成ファイルが出力されるので、その中身からIDを取得しました。
C:\Documents and Settings\(ログインユーザ)\Application Data\Adobe\Dreamweaver 9\Configuration\Menus\Menus.xml

今回は「ヘルプ(H)」メニューの一番下に追加するので、直前の項目IDは"DWMenu_Help_About"(「Dreamweaver について(_A)」)を設定。

これで拡張機能情報ファイルの作成は終わりです。次は実行するHTMLファイルを作成します。
<html>
<head>
<title>Aiueo</title>
<script language="javascript">
function canAcceptCommand(){
return true;
}
function receiveArguments(){
alert("Aiueo");
}
</script>
</head>
<body>
</body>
</html>

HTMLファイルにはscript要素を追加し、二つの関数を定義しています。canAcceptCommand関数はメニューを選択した際にreceiveArguments関数を呼び出すかどうかを判定する関数です。今回は必ず呼び出すので常に true を返しています。receiveArguments関数にはメニューを選択したときに実行させたい処理を記述します。今回は"Aiueo"と表示する処理を書きました。このファイルを「Aiueo.html」の名前で保存すればHTMLファイルの作成は終了です。

次は作成した二つのファイル(拡張機能情報ファイルとHTMLファイル)を同じディレクトリに置き、Adobe Extension Managerを使って次の手順で拡張機能ファイルを作成します。
  • Adobe Extension Managerを起動。
  • メニューから「ファイル(F)」->「拡張機能の作成(C)」を選択。
  • 表示されたファイルダイアログで作成したmxiファイルを開く。
  • 拡張機能ファイルの保存先を聞かれるので適当な場所へ保存する。

最後に「拡張機能ファイルが正常に作成されました」と表示されれば成功です。下の画像はAdobe Extension Managerを起動したところです。


次は作成した拡張機能を次の手順でDreamweaverへインストールします。
  • Adobe Extension Managerを起動。
  • メニューから「ファイル(F)」->「拡張機能をインストール(I)」を選択。
  • 拡張機能ファイルの選択ダイアログが表示されるので作成したmxpファイルを指定する。
  • 免責事項が表示されるので「承諾する(A)」ボタンを押下。

最後に「拡張機能'Aiueo'のインストールが正常に終了しました」と表示されれば成功です。下の画像はインストールを終えた後のAdobe Extension Managerです。


いよいよDreamweaverの起動です。Dreamweaverを起動して、メニューから「ヘルプ(H)」->「Aiueo.htmlを開く」を選ぶと「Aiueo」とダイアログ表示されます。



一度インストールしてしまえば、インストール先のAieuo.htmlファイルを編集することで手軽に色々と試すこともできます(※変更後二度呼び出さないと反映されませんが・・・)。
C:\Documents and Settings\(ログインユーザ)\Application Data\Adobe\Dreamweaver 9\Configuration\Menus\Aiueo\Aiueo.html

以上でDreamweaver Extensionの開発は終了です。色々と躓くことが多かったですが、拡張機能情報ファイルから拡張機能を作成する方法はWeb上であまり見かけなかったので参考になれば幸いです。

2008-06-06

Dreamweaver Extensionの開発にチャレンジしてみる (その1)

nakajimanさんの記事を参考に私も簡単なDreamweaver Extensionを開発してみました。同じ物ではつまらないので私はメニューに項目を追加して、選択すると予め作成しておいたHTMLを表示する機能拡張を作成します。

初めての環境で開発する場合、最初のとっかかりが大切です。道をいきなり間違えないように事前のお勉強は大切だと思ったのでAdobe社が公開している「Dreamweaver CS3 - 拡張ガイド」を読んでみました。

・・・・・・・・・。10分後クローズボタンをクリック。
nakajimanさんが仰っていた「要点が掴みにくかったり、具体的な振る舞いまで言及していなかったり、なんかこう入り口の壁が高い印象があって、取り組むのを敬遠していました。」というのを理解。「はじめに」の章の内容が悪い。具体性に欠けていて何から手をつけてよいかわかりません><

どうしたものだろうと、Dreamweaverと一緒にインストールされたアプリを眺めたところ関係ありそうなアプリを発見。「Adobe Extension Manager」。すごく重要そう。起動して触ってみたところ、Fileメニューに拡張機能をインストール、作成、削除する項目を発見。ここから始めれば良さそう。

とりあえず「拡張機能の作成」をクリックしたところ、mxi拡張子のファイルを要求するファイルダイアログが表示されました。mxiファイル?何それ。調べたところ「Adobe 拡張機能情報ファイル」だそうで、拡張機能の名称やバージョン、概要、使用ファイルなどを記述したファイルなのだそうです。拡張ガイドの読んだところにはそんなファイルの事書いてなかったですよ。最初に道を間違えないようにお勉強したけど結局道に迷いはじめてる…。でも進んでみなくては何も見えてこないのでAdobe Extension Managerを信じてみることに。

mxiファイルの作成は適当な機能拡張のを雛形にしたほうが早いと思ったので、以前nakajimanさんが紹介されていたmicroformats拡張機能を参考にすることにしました。パッケージをここからDLして、Adobe Extension Managerを使ってインストール。

そしてどこかにないかなと探したところ、あったあった「microformats.mxi」ファイル。
(C:\Documents and Settings\(ログインユーザ)\Application Data\Adobe\Extesion Manager\Configuration\Extensions\microformats.mxi)

これを参考に以下のmxiファイルを作成。機能拡張名は適当に「Aiueo」と命名。
話が長くなってしまったので本日はここまで。下記の内容については次回説明します。先に結論をお伝えしておくと、次回で拡張機能の開発が無事に終わります。インストール・アンインストールもできるハッピーエンドですのでご安心ください。それでわでわ。
<macromedia-extension name="Aiueo" version="0.1.0" type="Suite">
<author name="aquilegia" />

<products>
<product name="Dreamweaver" version="9" primary="true" />
</products>

<description><![CDATA[
あいうえお機能拡張。
]]></description>

<ui-access><![CDATA[
「ヘルプ」メニューから「Aiueo.htmlを開く」を選択して実行する。
]]></ui-access>

<license-agreement><![CDATA[
]]></license-agreement>

<files>
<file source="Aiueo.htm" destination="$dreamweaver\Configuration\Menus\Aiueo\" />
</files>

<configuration-changes>
<menu-insert insertAfter="DWMenu_Help_About">
<separator />
<menuitem id="DWMenu_Help_Aiueo" name="Aiueo.htmlを開く"
enabled="true" file="Menus/Ael/Aiueo.htm" />
</menu-insert>
</configuration-changes>
</macromedia-extension>

2008-05-13

Dreamweaver拡張機能のJavaScriptインタプリタは独特

Dreamweaver 拡張機能のJavaScriptで気づいた点をメモしておきます。

 1. 関数内でFunctionコンストラクタによって定義した関数でグローバルオブジェクトのプロパティを参照できない
 2. NN4のdocument.layersプロパティがある
 3. Array.prototype.sortに0を返すソート関数を指定して並び替えた結果が他のJavaScript実行環境と違う

一つ目はグローバルオブジェクトに定義された関数を実行する次のコードを実行すると、何故か未定義エラーとなります。他のJavaScript実行環境ではグローバルオブジェクトのプロパティを返しますし、関数をインライン定義すると期待した結果が返るのでバグなのかな。
function objectTag() {
try{
var f = new Function("return objectTag;");
f();
}catch(e){
alert(e);
}
}

二つ目はDreamweaverにはNetscape Navigator 4にあったdocument.layersプロパティがあり、同じように使うことができます。
//「<div id="aiueo" style="position: absolute;"></div>」を取得する
var layer = document.layers.aiueo;

最後は以前記事にした0を返すソート関数で並び替えるとJavaScript実行環境毎に結果が違うという話で、Dreamweaver拡張機能は他のどの実行環境とも違う結果を返しました。document.layersプロパティがあることから、NN4と互換性を持たせているかとも思いましたがNN4の並び方も独特です。この結果で実行環境の判別ができそうで笑えます。
["",void 0,null,NaN,0]    //並び替え前

[null,void 0,NaN,"",0] //Dreamweaver
[void 0,null,NaN,0,""] //NN4
[NaN,null,"",0,void 0] //Firefox
["",null,NaN,0,void 0] //IE, Opera, Rhino
[null,NaN,0,"",void 0] //Safari, AIR

上記三点から想像するに、Dreamweaver拡張機能(またはAdobe拡張機能)は独自のJavaScriptインタプリタを持っているようです。同じAdobe製であるにも関わらずAIRとDreamweaver拡張機能で振る舞いが違うのも少し残念に感じます。純Adobe製と元Macromedia製の違いからくるのかな?

2008-04-29

実例で小さくはじめる Dreamweaver 拡張機能の開発 (その4)

実例で小さくはじめる Dreamweaver 拡張機能の開発 (その3)
ツールバーのボタンに使う画像の話題です。ツールバーのボタンの画像ファイルは "Objects\Text\EscapeHTML.png" として保存しました。... 途中、省略 ... 今回はここまで。まだ続けます。
Dreamweaver 拡張機能の JavaScript を含む HTML ファイルと、ツールバーのボタンの画像ファイルを保存しても、まだその拡張機能は無効です。拡張機能を有効にするには "Objects\insertbar.xml" ファイルを編集して、挿入ツールバーのボタンを定義して、HTML ファイルと画像ファイルを関連付ける必要があります。

拡張機能のボタンは、挿入ツールバーの任意の位置に追加できます。ツールバーの構成は "Objects\insertbar.xml" の XML ドキュメントを編集して定義します。

今回は、挿入ツールバーの一般カテゴリの末尾に区切りとボタンを追加しました。"ここから" から "ここまで" が追加した部分です。
<category
MMString:name="insertbar/category/common"
folder="Common"
id="DW_Insertbar_Common"
>
(途中、省略)
<button
MMString:name="insertbar/tagChooser"
codeOnly="TRUE"
command="dw.showTagChooser()"
id="DW_TagChooser"
image="Common\Tag Chooser.png"
/>
<!-- ここから --/>
<separator />
<button
id="Text_EscapeHTML"
image="Text\EscapeHTML.png"
file="Text\EscapeHTML.htm"
enabled="_VIEW_CODE"
/>
<!-- ここまで --/>
</category>
category 要素はツールバー内の分類を表し、ツールバー上はタブとして表示されます。button 要素はツールバーのボタンを表します。menubutton 要素でグループ化した button 要素は、ドロップダウンリストを表します。separator 要素はその名のとおり、ツールバーの区切りを表します。

button 要素の id 属性には、他の要素を重複しない識別子を指定します。この識別子の名前付けのルールは明示されていませんが、Dreamweaver CS3 拡張ガイドの中では、フォルダ名とファイル名を連携したものを使っています。ですので、今回も同じように "Text_EscapeHTML" としました。

button 要素の image 属性には、保存しておいた画像ファイルを指定します。また、file 属性には、保存しておいた HTML ファイルを指定します。

button 要素の enabled 属性は、いつボタンを有効にするかその条件を指定します。今回は、コードビューの文字列を HTML エスケープすることが目的なので、"_VIEW_CODE" を指定して、コードビューでのみボタンが有効になるようにしました。

実例で小さくはじめる Dreamweaver 拡張機能の開発 (その2)
今回は、コードビューを開きかつフォーカスがあるときのみ、コマンドを実行するよう制限しているので、false としています。この制限については、後日説明します。デザインビューかつその最新の編集結果を対象とするなら、true とすべきでしょう。
この制限については、後日説明します。とは、このことでした。

その1からその4まで続きましたが、説明はここでおしまいです。

ここで取り上げた実例は、挿入ツールバーの拡張でしたが、Dreamweaver 拡張機能には、挿入ツールバー以外にも、紹介しきれないほど、もっと多くの拡張の仕組みがあります。私も全貌を把握できていませんが、Dreamweaver のあらゆる部分が拡張できると捉えてよいと思います。

はじめからその広大な拡張性に向き合うと、どうしてよいのか分からなくなってしまいますが、実例で体感しながら小さくはじめてみると、だんだんと雰囲気が掴めてきて、Dreamweaver CS3 拡張ガイドや API リファレンスの読みどころも見えてきたりしました。

今後も自らのために、拡張機能を活用していく機会が増えますので、その中で発見がありましたら、その都度お伝えできればと思います。

実例で小さくはじめる Dreamweaver 拡張機能の開発 (その3)

実例で小さくはじめる Dreamweaver 拡張機能の開発 (その2)
ということでしたので、引き続き "Objects\Text\EscapeHTML.htm" として保存した拡張機能のプログラム本体を説明します。... 途中、省略 ... 今回はここまで。まだ続けます。
ツールバーのボタンに使う画像の話題です。ツールバーのボタンの画像ファイルは "Objects\Text\EscapeHTML.png" として保存しました。

Adobe が公開している Dreamweaver CS3 拡張ガイド の中では、ツールバーのボタンには GIF イメージを使うように指示がありますが、実際に試したところ、今回のように PNG イメージでも不都合なく使えるようです。

また、そのイメージのサイズは、18 × 18 を使うように指示がありますが、実際に試したところ、今回のように一般的なサイズの 16 × 16 でも不都合なく表示できました。どうやら表示するとき、18 × 18 にリサイズしてくれるようです。

↓こんな感じです。今まで使っていたアイコンなど、そのまま使えますね。



今回はここまで。まだ続けます。

実例で小さくはじめる Dreamweaver 拡張機能の開発 (その2)

実例で小さくはじめる Dreamweaver 拡張機能の開発 (その1)
このエントリはここまでです。このエントリでは、プログラムから Dreamweaver を操作して拡張する大まかな流れを伝えることを意図しています。ですので、プログラムや設定の内容は、後日、具体的に詳しく説明します。
ということでしたので、引き続き "Objects\Text\EscapeHTML.htm" として保存した拡張機能のプログラム本体を説明します。

Dreamweaver 拡張機能は、コマンドという1つの操作を最小セットとしています。そのコマンドは、1つの HTML ファイルに対応し、その HTML ファイルの中の JavaScript を使って Dreamweaver を操作します。
<html>
<head>
<title>Escape HTML</title>
<script language="javascript">

// isDOMRequired
function isDOMRequired() {
return false;
}

// objectTag
function objectTag() {
var dom = dw.getDocumentDOM();

selection = dom.source.getSelection();
if (selection[0] == selection[1])
return;

var text = dom.source.getText(selection[0], selection[1]);
text = text.replace(/&/g, '&amp;');
text = text.replace(/</g, '&lt;');
text = text.replace(/>/g, '&gt;');
text = text.replace(/"/g, '&quot;');
text = text.replace(/'/g, '&#39;');

return text;
}

</script>
</head>
<body></body>
</html>
title 要素は、ツールバーのボタンのツールチップとして使われます。



isDOMRequired 関数は、ツールバーのボタンをクリックする前に、コードビューとデザインビューを同期するかどうかを指示するものです。編集中のコードをデザインに反映してからコマンドを実行するときは true を、反映しないときは false を返します。

今回は、コードビューを開きかつフォーカスがあるときのみ、コマンドを実行するよう制限しているので、false としています。この制限については、後日説明します。デザインビューかつその最新の編集結果を対象とするなら、true とすべきでしょう。

objectTag 関数は、ツールバーのボタンをクリックすると呼び出されます。そして、この関数から文字列を返すと、その文字列がコードビューに挿入されます。このとき、コードビューで文字列を選択しているときは、その文字列が戻り値の文字列で置換されます。文字列を選択していないときは、カーソルの位置に戻り値の文字列が挿入されます。

今回は、dom.source.getSelection 関数を使って、コードビューで選択している文字列の位置を取得し、dom.source.getText 関数を使って、その文字列を取得しています。そして、その文字列を HTML エスケープして objectTag 関数の戻り値にしています。

例外として、dom.source.getSelection 関数で取得した開始位置と終了位置が同じ(つまり、文字列が選択されていない)ときは、objectTag 関数の戻り値を省略しています。objectTag 関数の戻り値を省略すると、キャンセルとして扱われます。

拡張機能のプログラム本体の説明はおしまいです。ちょっとだけ、拡張機能のイメージを掴むためのヒントを紹介しておきます。

上の JavaScript のコードは、次のようにして、外部ファイルに追い出すこともできます。
<script language="javascript" src="EscapeHTML.js"></script>
上の HTML ファイルは、何の役割も果たしていないように見えますが、拡張機能で UI を表現するときに使います。HTML フォームを記述して、ダイアログボックスとして使ったりできます。

今回はここまで。まだ続けます。

2008-04-27

実例で小さくはじめる Dreamweaver 拡張機能の開発 (その1)

Dreamweaver を使っていると、こんなことやあんなことができたら便利なのに、と思うことがよくあります。そのいくつかは Adobe やネット上で公開されている Dreamweaver 拡張機能をインストールして解決できるのでしょうが、その目的とするところが特定の用途だったりすると、必要とする拡張機能が見つからないこともあります。

Dreamweaver は Dreamweaver 自身を拡張する様々な方法が備わっています。その中の拡張機能という仕組みを使うと、プログラムから Dreamweaver を操作して、自らの目的に適うように Dreamweaver を拡張することができます。

ということは、前々から知ってはいたのですが、Adobe が公開している Dreamweaver CS3 拡張ガイドAPI リファレンス をざっと読んでも、要点が掴みにくかったり、具体的な振る舞いまで言及していなかったり、なんかこう入り口の壁が高い印象があって、取り組むのを敬遠していました。また、ネットで探しても、まとまった情報が少なかったのも、その敬遠の理由のひとつです。

新しいことをはじめるときは、どうしても苦しさが伴うのですが、どうしても実現したい機能が出てきたので、この機会に取り組むことにしました。その取り組みの中で、知ったことをいくつか紹介します。

まずお伝えしたいのは、小さなものであれば、思ってたよりも簡単に作れますということです。知らない、分からないというのが、行動の重石になっているのでしょうね。そこで、みなさんの中にも重石があって、その重石をいくらか軽くできないかという想いから、小さな実例を使って、プログラムから Dreamweaver を操作して拡張する方法をまとめてみました。(ごめんなさい。前置きが長すぎましたね。)

ツールバーに新しいボタンを追加(赤丸の部分です)して、



コードビューでテキストを選択して、そのツールバーのボタンをクリックすると、



選択したテキストを HTML エスケープする、という実例を用意しました。



はじめに、次のとおり、拡張機能のファイル群を格納するフォルダを作成します。今回は "Text" という名前のフォルダにしました。なお、"Objects" 親フォルダは、既存のフォルダです。
C:\Documents and Settings\<user>\Application Data\Adobe\
Dreamweaver 9\Configuration\objects\Text
続けて、次の HTML ファイルを用意します。その HTML ファイルは、"Objects\Text\EscapeHTML.htm" として、前述の "Text" フォルダに保存します。
<html>
<head>
<title>Escape HTML</title>
<script language="javascript">

// isDOMRequired
function isDOMRequired() {
return false;
}

// objectTag
function objectTag() {
var dom = dw.getDocumentDOM();

selection = dom.source.getSelection();
if (selection[0] == selection[1])
return;

var text = dom.source.getText(selection[0], selection[1]);
text = text.replace(/&/g, '&amp;');
text = text.replace(/</g, '&lt;');
text = text.replace(/>/g, '&gt;');
text = text.replace(/"/g, '&quot;');
text = text.replace(/'/g, '&#39;');

return text;
}

</script>
</head>
<body></body>
</html>
続けて、ツールバーのボタンの画像ファイルを用意します。その画像ファイルは、"Objects\Text\EscapeHTML.png" として保存しました。

続けて、次のとおり、"Objects\insertbar.xml" ファイルを編集します。"ここから" から "ここまで" の separator と button 要素を追加しました。このファイルは、後で元に戻せるように、バックアップしておくのが無難です。
<category
MMString:name="insertbar/category/common"
folder="Common"
id="DW_Insertbar_Common"
>
(途中、省略)
<button
MMString:name="insertbar/tagChooser"
codeOnly="TRUE"
command="dw.showTagChooser()"
id="DW_TagChooser"
image="Common\Tag Chooser.png"
/>
<!-- ここから --/>
<separator />
<button
id="Text_EscapeHTML"
image="Text\EscapeHTML.png"
file="Text\EscapeHTML.htm"
enabled="_VIEW_CODE"
/>
<!-- ここまで --/>
</category>
これで準備はおしまいです。

最後に、これらのファイルを Dreamweaver にロードして、実際に使えるようにします。

次のように、挿入バーのドロップダウンリストを Ctrl キーを押下しながら選択し、そのリストから拡張機能のリロードをクリックします。



すると、ツールバーに新しいツールバーが追加されます。そして、そのボタンをクリックすると、選択したテキストが HTML エスケープされます。このとき、間違いがあると、エラーとその理由を示すメッセージボックスが表示されるので、見直してください。

このエントリはここまでです。このエントリでは、プログラムから Dreamweaver を操作して拡張する大まかな流れを伝えることを意図しています。ですので、プログラムや設定の内容は、後日、具体的に詳しく説明します。