Mozilla エディター
Mozilla エディターは、Gecko
をベースにしたアプリケーションにおいて、HTML とプレインテキストの編集ができるようにします。プログラムの内部では、エディターのコードは、主に
DOM
を呼び出してページの内容を操作するので、まさしく DOM に精通したエディターと言えるでしょう。また、
IME
(国際的なテキスト入力)のサポートも行ない、殆どの場合 JavaScript によってアクセス可能です。
現在の所、Mozilla のコードベースでは、エディターは3つの異なった方法で使用されていますが、各々のアプリケーションは同一の基礎的なコードを共有しています。
- Composer :基本的な性能は全て備えた HTML エディター。ウェッブページ作成用。
- HTML 編集ウィジェット:rich text 編集ツール。メール作成、インスタント・メッセージ、その他の領域で使用される。
- テキスト・ウィジェット:エディターは、テキスト入力とテキスト領域で、使用されます。その領域は、XUL
(例えば、URL バー)と HTML 形式のコントロールの両方です。
エディターがどう動作するかについて、さらに情報が知りたい場合は、下記の開発者のための文書をお読みください。
エディターのコードは、 mozilla/editor/
にあります。私たちは、同時に、他の領域のコードも信頼(時にはサポート)しています。特に、DOM
の範囲と選択(DOM
のインターフェース、範囲と選択の移植)です。私たちは、出力システム、つまり
DOM 文書を特定の形式のテキスト(
プレインテキスト、
または
HTML)
に変換するコードもメンテナンスしています。
現在の所、エディターのコードは、3つの XPCOM コンポーネント DLL にパッケージされています:
ライブラリ |
DLL の名称* |
目的 |
|
Win32 |
Unix |
Mac |
|
Editor |
editor.dll |
libeditor.so |
EditorCore.shlb |
編集機能の中核、JavaScript へのインターフェース |
Transaction Manager |
txmgr.dll |
libtxmgr.so |
EditorTxmgr.shlb |
一般的な処理の取扱い(取消とやり直しのサポート) |
Text Services |
txtsvc.dll |
libtxtsvc.so |
TextServices.shlb |
DOM 文書からテキストを得るためのシンプルなインタフェース(検索やスペルチェック用) |
*デバッグビルドでの名称は異なっているかもしれないので注意してください。
エディターウィンドウとダイアログのための、XUL, JS, CSS そして GIF ファイルで構成された、エディターのユーザーインターフェース・ファイルは、
mozilla/editor/ui/
にあり、ビルドでは、chrome/packages/core/editor/content/ および
chrome/skins/<skin
name>/editor/skin/ にインストールされます。
これらの文書に関するコメントがあれば、エディターのニュースグループか、メーリングリストに送ってください。登録方法の詳細は、コミュニティページを参照してください。
注意: 開発の進行とともに、これらの文書のいくつかは、必然的に時代遅れとなります。このページの情報に基づいて何か重要な作業を行なおうとしているのであれば、あらかじめエディターグループに最新の動向について問い合わせてください。
Brian King による、
エディターの拡張
に関するいくつかの文書が、
O'Reilly
DevCenter で読めます。
以下の仕様文書には、現行の編集方式と可能なユーザー設定の元で、ユーザーが行なう様々な行動に対して、エディターがどのように反応するべきかについての、私たちの考えが記載されています。これらは、「カーソルが文章の中にあって、"return"
とタイプした時、何が起きるか?」といった問題を扱っています。
以下の仕様文書は、メインウィンドウ、ダイアログ、メニュー、コンテキスト・メニューなど、ユーザーインターフェース(UI)の各々の部分を扱っています。
- composer メインウィンドウの仕様。作成待ち。
- メール編集の仕様。作成待ち。
- メニュー仕様。作成待ち。
- コンテキスト・メニュー仕様。作成待ち。
-
ダイアログ仕様。 composer
の各種ダイアログの仕様(やや時代遅れ)。
-
表編集仕様。 テーブル編集の仕様(やや時代遅れ)。
エディターの特定のエリアにおける、詳細(低レベル)に関する仕様。
-
キー・イベント仕様 エディターだけではなく、Mozilla
アプリケーション全体に応用できます。
-
処理・取り消しマネージャー 汎用のクラスセット。エディター以外のクライアントでも使用可能です。
-
選択仕様 選択はレイアウトの一部ですが、エディターチームはそれを移植しています。
テスト計画とテスト事例(testcase) は、品質保証(Quality Assurance)チームによって、その機能が動作するかどうかを決めるのに使われます(つまり、バグ捜し)。
以下の文書は、主として開発者のために書かれており、エディターがどのように動くかの核心を扱っています。
より一般的な「ハウツー」文書。
他のレイアウト・コードベースと同様に、現在のエディターは、完全に新しいソース、すなわち
Gecko レイアウト・エンジンに基づいています。古い 4.x の Composer コードベースに由来する部分は一つもありません。
古い Comoposer に関する情報は、リンクから入手できます。このコードは、もはや開発もメンテナンスもされておらず、参照したい人の為だけにまだツリーに残されている、という事に注意してください。
あなたは、参加して、コードをハックしたり、UI をいじったり、文書を書いたり、計画をテストしたいのですね?
すばらしい!
最初にすることは、あなたがどのように貢献したいか決めることです。私たちは、次の領域のどこでも援助を歓迎しますので、それぞれどのレベルの経験が必要かを記述した次のリストをご覧下さい。
主要な新機能(例えば、出版)
C++ での多大な作業(恐らく、新しい XPCOM
component
の作成)と、XUL と JavaScript
による UI に関する作業が必要でしょう。
-
エディターを別のアプリケーションに組み込む
あなたの目標としているアプリケーションが完全に C++ で書かれていない限り、これは前項に比べれば
XUL と JavaScript のコーディングによるところが大です。組み込み
の文書を参照してください。エディターが、どのようにしてインスタンスを収得し、イベントを扱うか(ここ
に記載されています)に関しての、充分な知識も必要です。
-
HTML のタイピング規則の改善; より良い HTML の生成
現在の HTML タイピング規則は、HTML メールの作成を念頭に置いた上で書かれています。それは、ウェッブページには必ずしも最適なものではなく、私たちはこの事を承知しています。この規則は、C++
に移植されています。新しい規則のセットをどのように書くかについては、ここで読めます。DOM
に関する充分な知識が必要です。
-
メモリーリーク、パフォーマンスの問題、バグなどを修正する手伝い
メモリの使用、パフォーマンス、そして単にコードを監視するだけでも、私たちは手助けを歓迎します。この作業は、ほぼ全部が
C++ で、あなたのプラットフォームで動作する有料のプログラムを使用したいと思うでしょう。メモリーリークの発見方法と修正方法に関する情報はこちら。クラッシュなどの他のバグについては、一般的なデバッグ技術が必要ですが、Purify
のようなツールが役に立つかも知れません。
-
UI をいじる、マイナーな新しい機能を追加する
この作業には、XP フロントエンド (XPFE)
、すなわち、UI の表示と動作を XML 言語、 XUL、 そして JavaScript を用いて記述する方法についての最新の知識がいります。ダウンロードしたバイナリの中にある
XUL、 CSS そして JS ファイルを操作することで、UI を変更してみることができます。エディターに関連した
XUL と JS については、chrome/packages/core/editor/content/ を、また
CSS と画像については、chrome/skins/<skin name>/editor/skin/
の中を見てください。ソースツリーでは、これらのファイルは
mozilla/editor/ui/
の中にあります。
メニューアイテムやコンテクストメニューから呼び出される JS を書くことでも、新しい機能を追加できます。エディターの機能にアクセスするには、エディターシェルからエディターを呼び出す必要があるでしょう。エディターシェルの
IDL
ファイル、nsIEditorShell.idl
を見ることで、JavaScript との関連を理解できるでしょう。
-
QA とテストの手伝い
この作業では、単に製品を使用して暇な時に Bugzilla にバグをファイルすることから、テスト計画とテスト事例の開発を手助けすることまで、いろんなレベルで手助けできます。詳細については、QA
のページ を参照してください。
composer
テスト事例 の概略が入手できます。
特定の問題やコードの部分について、誰に連絡したらよいのかを知りたいのであれば、この表を参照するのが良いでしょう。
Mozilla エディターの問題を議論するニュースグループは、
netscape.public.mozilla.editor
で、エディターチームのメンバーは定期的に投稿を読んだり投稿したりしています。mozilla-editor
メーリングリストもオープンになっています。このリンクから登録してください。(メッセージの表題に
"subscribe" と記載して下さい)
Last modified Tursday 15 February 2001
Maintained by the editor team: mozilla-editor@mozilla.org
|