外部エディターを呼び出すプロトコル Edit

application/x-external-editor
というMIMEコードを付けて、.iniファイル形式のデータを送るだけ。
以降は通常の投稿と同じ扱い。

MediaWikiが送るデータの例:

[Process]
Type=Edit text
Engine=MediaWiki
Script=http://ja.wikipedia.org/w/index.php
Server=http://ja.wikipedia.org
Path=/w
Special namespace=特別

[File]
Extension=wiki
URL=http://ja.wikipedia.org/w/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:%E6%93%AC%E5%8F%A4%E7%8C%AB&action=edit&internaledit=true

フォーム内を外部エディター編集するアプリケーションやプラグインがあれば不要。エディター呼び出しの手間(2クリック程度)が増えるだけ。
なので、どんなに完璧に対応したヘルパーアプリケーションがあったとしても、あまり便利にはならない。

仕組み Edit

FirefoxでMIMEコードとPerlスクリプト(ee.pl)を関連付けることによって任意のエディターを呼び出せるようにMediaWikiは設計されている。

MediaWikiから特定のMIMEコード(application/x-external-editor)が送られてきたときee.plが呼ばれるようにブラウザーに仕込んでおく必要がある。
ee.plではMIMEと一緒に送られてくる.ini形式のレスポンス(上記のもの)を読み込んで、独自にMediaWikiと通信、得たWikiTextをファイル化、利用者が用意したee.iniに書かれている外部エディターで開く。

エディター起動と同時にGTKによるダイアログボックス作成。「保存」や「プレビュー」といった操作を可能に。

編集終了後、Perlスクリプト(ee.pl)が独自にMediaWikiと通信。
編集が終わったファイルの内容をMediaWikiに投稿。

外部エディターを使うときはPerlスクリプトが通信や外部エディターを制御する。WebブラウザーはPerlスクリプトを呼ぶだけ。呼びっぱなし。
投稿後にPerlスクリプトがWikiのURLを開く。→Webブラウザーで編集後のページが表示される。