ODF@WWW――OpenOffice.orgでサーバ上のWebページを直接編集できるツール

 サーバ上のWebページをOpenOffice.orgで直接開き、編集を加えてから保存ボタンを押すと、変更内容がサーバにそのまま反映される――そんな機能があったらいいのにと思う。だが実は、そんな「うまい話」の実現を目指しているプロジェクトがある。その名はODF@WWWだ。

 ODF@WWWはもともと、ごく簡単なハックとして始まったが、現在では、エンドユーザがOpenOffice.orgでWebページの作成や編集を行うための便利なツールへと進化しつつある。ODF@WWWは、Apacheサーバのカスタム設定オプション、JODConverterユーティリティ、bashスクリプトという3つの要素で構成される。

 ODF@WWWを開発したKay Ramme氏によると、OpenOffice.orgには、WebDAVを有効にしたApacheサーバ上のドキュメントを開いたり保存したりする機能が標準装備されている。あとは、保存したOpenOffice.orgドキュメントをHTMLページに変換する仕組みと、HTMLページをOpenOffice.orgと連携させて編集できるようにする仕組みがあればいい。ODF@WWWでは、いくつかの簡単なスクリプトを用意し、ユーザが特定のHTMLページを要求したときにApacheにスクリプトを実行させるという方法で、そうした機能を実現している。

 たとえば、convert.shというスクリプトは2つの処理を行う。1つは、要求されたHTMLページが存在しないときや、そのページの基となるOpenOffice.orgドキュメント(.odtファイルや.odsファイル)が更新されているときに、基となるドキュメントをJODConverterでHTMLファイルに変換する処理、もう1つは要求されたページの内容をstdoutに出力する処理だ。これを受けてApacheは、その内容をOpenOffice.orgに渡す。また、redirect.shというスクリプトは、要求されたHTMLページをOpenOffice.orgで編集できるようにするための処理を行う。ユーザが編集して保存したOpenOffice.orgドキュメントをHTMLに戻す処理もJODConverterが行う。ODF@WWWの内部処理の詳細については、Kay Ramme氏のブログを参照してほしい。

 幸い、こうした細かな仕組みについては、エンドユーザはまったく意識する必要がない。いったんインストールと設定が済めば、ODF@WWWの処理はバックグラウンドで自動的に進められ、WebサーバとOpenOffice.orgのシームレスな統合が実現される。

 ODF@WWWをインストールするには、Linuxベースのローカルマシンが必要だ。理由は2つある。1つは、ODF@WWWはJODConverterやOpenOffice.orgなどの外部アプリケーションに依存し、それらはApache Webサーバと同じマシンで動作する必要があること、もう1つは、現在のバージョンのODF@WWWにはアクセス制御の機能がないので、ローカルサーバへの導入が無難であることだ。ODF@WWWのインストールは簡単で、使うコマンドは限られている。Ubuntuでのインストール方法の例を示そう。まずターミナルを開き、「xhost + localhost」コマンドを実行して、ローカルサーバからローカルマシンのXサーバにアクセスできるようにする。次に、「sudo -i」コマンドを実行してrootになり、「apt-get」コマンドを次のように実行してApacheサーバとOpenJDKパッケージをインストールする。

apt-get install apache2 openjdk-6-jre-headless

 もちろん「sudo apt-get」としてもよいのだが、インストール処理の中で、root権限が必要なコマンドを他にもいくつか使用するので、ここでsudoモードに切り替えておく方が簡単だ。次に、odf-at-www.tgzアーカイブの取得と解凍、およびJODConverterのダウンロードとインストールを次のように行う。

cd /
wget http://mediacast.sun.com/users/Kay.Ramme/media/odf-at-www.tgz
tar -xvzf odf-at-www.tgz

cd /opt/odf-at-www/cgi-bin
wget http://mesh.dl.sourceforge.net/sourceforge/jodconverter/jodconverter-2.2.1.zip
unzip jodconverter-2.2.1.zip
cd /

 最後に、odf-at-wwwのディレクトリの所有者をwww-dataに変更する。

chown -R www-data:www-data /var/odf-at-www /opt/odf-at-www

 これで、ポート8100で接続を受け付けるOpenOffice.orgのインスタンスを起動できる(このポートは、JODConverterツールがODFドキュメントをHTMLに変換するために使用する)。そしてApacheを再起動する。

export SAL_USE_VCLPLUGIN=gen
export DISPLAY=:0
soffice -accept="socket,port=8100;urp;"
apache2ctl restart

 Firefoxでhttp://localhost:1234を開くと、デフォルトの開始ページが表示される。すべてが正常に機能していれば、[Edit]ボタンのあるツールバーが表示されているはずだ。このボタンはページを編集用に開くためのものだが、実際にクリックする前に、OpenOffice.orgにページをリダイレクトする簡単なスクリプトを作成する必要がある。具体的には、ホームディレクトリにテキストファイルを作成し、次のコードを入力する。

#!/bin/sh
/usr/bin/soffice `cat $1`

 このファイルをredirect.shという名前で保存する。ちなみに、Windowsマシン用のリダイレクト・スクリプトの場合は、次のようなコマンドを実行するファイルをredirect.batという名前で作成する。

FOR /F %%v IN (%1) DO "c:\Program Files\OpenOffice.org 2.4\program\soffice.bin" %%v

 ブラウザで[Edit]ボタンをクリックすると、選択した.odtrドキュメントを開くためのアプリケーションを選択するよう求めるプロンプトが表示される。redirect.shスクリプト(Windowsの場合はredirect.bat)を選択して[OK]を押すと、OpenOffice.org Writerでドキュメントが開く。Calcで作成したWebページの場合は、スプレッドシートに自動変換され、Calcで開く。ドキュメントにいくつか変更を加えて保存し、Firefoxで表示を更新すると、変更内容が反映されているはずだ。

 サイトに新しいページやドキュメントを追加するのも簡単だ。wikiと同じように、編集中のドキュメントに新しいページのURLを挿入することでページを作成できる。ドキュメントを保存してから、ブラウザでそのリンクをクリックすると、デフォルトのテキストが記述された空のページにリダイレクトされる。空のページは、dummy.odtファイル(スプレッドシートの場合はdummy.ods)から生成されている。したがって、これらのファイルの内容を編集して、新しいページのテンプレートとして使用することも可能だ。

 ODF@WWWがどのように動くのか、実際にインストールする前に雰囲気をつかみたい場合は、GullFOSSブログのこのページを見てほしい。ODF@WWWの機能を紹介するデモンストレーションビデオがある。

 まだ日が浅いODF@WWWプロジェクトだが、前途は有望だ。現時点では本番環境への導入はお勧めできないが、ローカルサーバでWebページの編集が必要な場合は、ぜひ試してみるとよいだろう。このプロジェクトにはwikiページも開設されている。今はまだあまり情報がないが、開発者やユーザからこのプロジェクトへの注目が高まるにつれて、状況が変わっていくことを期待したい。

Dmitri Popovは、フリーランスのライターとして、ロシア、イギリス、アメリカ、ドイツ、デンマークのコンピュータ雑誌に寄稿している。

Linux.com 原文