「編集に外部アプリケーションを使う」 †
Mediawikiで実装されている仕組み。
自分が使い慣れたテキストエディターでwikiを編集するための仕組み。
どんなテキストエリアでも外部アプリで編集できるようになった今、MediaWikiでしか使えないこの仕組みは不要。
「差分表示に外部アプリケーションを使う」も同じ仕組み。
外部エディターを呼び出すプロトコル †
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クリック程度)だけで同じことができる。
なので、どんなに完璧に対応したヘルパーアプリケーションがあったとしても、この機能はあまり便利にならない。
仕組み †
FirefoxでMIMEコードとPerlスクリプト(ee.pl)を関連付けることによって任意のエディターを呼び出せるようにMediaWikiは設計されている。
FirefoxでMIMEコードとPerlスクリプト(ee.pl)を関連付けることによって、任意のエディターを呼び出せるようにする仕組み。
- Manual:External editors
- http://www.mediawiki.org/wiki/Manual:External_editors
MediaWikiから特定のMIMEコード(application/x-external-editor)が送られてきたときee.plが呼ばれるようにブラウザーに仕込んでおく必要がある。
MediaWikiから特定のMIMEコード(application/x-external-editor)が送られてきたときee.plが呼ばれるようにFirefoxに仕込んでおく必要がある。
ee.plではMIMEと一緒に送られてくる.ini形式のレスポンス(上記のもの)を読み込んで、独自にMediaWikiと通信、得たWikiTextをファイル化、利用者が用意したee.iniに書かれている外部エディターで開く。
エディター起動と同時に、GTKを利用したダイアログボックス作成。このダイアログから「保存」や「プレビュー」といった操作を可能にする。
エディター起動と同時に、GTKを利用したダイアログボックス作成。このダイアログから編集終了やプレビューといった操作を可能にする。
編集終了後、Perlスクリプト(ee.pl)が独自にMediaWikiと通信。
編集されたファイルの内容をMediaWikiに投稿。
(つまりee.plはMediaWiki専用の自動投稿スクリプト)
まとめ †
Perlスクリプトが通信や外部エディターを制御する。WebブラウザーはPerlスクリプトを呼ぶだけ。呼びっぱなし。
投稿後にPerlスクリプトがWikiのURLを開く。→Webブラウザーで編集後のページが表示される。
WebブラウザーはMediaWikiから与えられたMIMEコードに反応して、クライアント側端末のPerlスクリプトを呼ぶだけ。呼びっぱなし。そのPerlスクリプトが、投稿処理や外部エディターを制御する。
投稿後にPerlスクリプトがWikiのURLを開く。→ Webブラウザーで編集後のページが表示される。
入力フォーム内を外部エディターで編集できるなら不要。エディター呼び出しの手間(2クリック程度)だけで同じことができる。というわけで、どんなに完璧に対応したヘルパーアプリケーションがあったとしても、この機能はあまり便利にならない。