HTMLエディタKompoZer


ホームページを公開するにあたって,はじめにHTMLエディタを探しました.
フリーのHTMLエディタをいくつか調べたところ,KompoZerという,Netscape Composerを発祥とするHTMLエディタを知りました.このエディタはWYSIWYGでの編集ができますが,直接HTMLタグを編集することもできて自由度の高いソフトです.
インストールして使ってみましたが,操作も分かりやすく大変便利でした.

しかしながら,一つ問題がありました.それは,時々文中に勝手に改行を入れてしまうという動作です.Webで調べたところ,
「editor.jsというファイルの
pref("editor.htmlWrapColumn", 72);
という行を
pref("editor.htmlWrapColumn", 1000);
に変更すればよい」,
という情報を見つけましたが,それでもやはり長い文を入力すると勝手に改行されてしまいました.

もう少し調べてみると,
「"ツール→JavaScriptコンソール"から,
top.opener.GetCurrentEditor().wrapWidth = 9999
と入力すればよい」,
という情報を見つけたので試したところ問題が解決されました.
ただし,上記のコマンドはファイルを開くたびに入力しなければならず,またこのコマンドを入力した場合,KompoZerは今度は必要な改行もしてくれなくなるという問題がありました.

さらに調べると,HandCoderというKompoZer(Nvu)用のプラグインがあることを知りました.
このプラグインは,KompoZerでの編集中に任意のテキストエディタを起動して,そこで編集したHTMLの内容をすぐにKompoZerに反映するといったことや,HTMLファイルを保存する際に指定した整形用プログラムでHTMLの整形を行ってから保存するといったことができます.
このプラグインを使えば,適切な改行を行うフィルタを通してKompoZerがHTMLファイルの保存を行うようにすることができます.
HTML整形用のプログラムとしては,HTML Tidyを使うことが想定されているようですが,好みの出力が得られなかったのと,そもそもEUC-JPを適切に扱えなかったので,ttidyというフィルタプログラムを自作しました.
このフィルタはKompoZerの出力だけを扱えばよいので,あらゆる可能なHTMLファイルが入力されることは想定していません.
また,先ほどの改行の不具合を直すコマンドを,新しいファイルを開いた時に自動で実行するようにHandCoderに手を入れました.
JavaScriptはよく分かっていないので適切かどうか分かりませんが,次のように行いました.
まず,HandCoder-0.3.4-en.xpiを上記のページからダウンロードして,このファイルの拡張子をzipに変更します.
このzipファイルからchrome/handcoder.jarというファイルを取り出し,ファイルの拡張子をzipに変更します.
そのzipファイルからcontent/editorOverlay.jsというファイルを取り出し,テキストエディタで編集して下記の行を追加します:

*** editorOverlay.js.old	Fri Dec 12 02:00:27 2008
--- editorOverlay.js.new	Fri Dec 12 02:00:18 2008
***************
*** 364,369 ****
--- 364,373 ----
    EditorOnTabSelect(); // Kaze
  }
  function UpdateWindowTitle() { // modified
+ 	var editor = GetCurrentEditor();
+ 	if (editor) {
+ 		editor.wrapWidth = 9999;
+ 	}
  	try {
  		var windowTitle = GetDocumentTitle();
  		if (!windowTitle)

変更したeditorOverlay.jsを元のjarファイルやxpiファイルに戻して,修正したxpiファイルをプラグインとしてインストールします.
インストール後,"ツール→HandCoder→Options..."のメニューを選び,Tidyのプログラムの場所を指定する箇所で上記のttidyの場所を指定すれば,HTMLファイルを保存する際に自動的に整形を行うことができます.


[戻る]
2008-12-11 ページ作成
(2008-10)
T. Nakagawa