[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[125] Re: カスタマイズ法



 浅海です。

Tatsuya Aoyagi <aoyagi@tsuda.ac.jp> writes:

> ところで、
> 大学で学生が使うコンピュータがUnix/Netscapeなので、
> 現時点ではどうしてもHTML3の出力が必要になります。
> HTML4の出力は満足できるのですが、
> HTML3に関しては、まだ改善の余地があるように思います。
> あるいは、割りきって、Netscape専用の出力と考えれば、
> さらに工夫の余地もあるかもしれません。

 そうなんですよね。

 SmartDoc的にはNetscapeになんとかがんばって欲しいと願いつつ、もう3年
目に突入してしまいました。次のバージョンでは改善されるだろうと期待しつ
つ、結局HTML4.0が表示できるようにはなりませんでした。
 とにかくNetscape 6.0のリリース&普及を願うばかりですが、現時点では
UNIX系でデファクトであるNetscape 4.x系への対応は、頭の痛い問題として残っ
ています。

 SmartDocのバックログは他にも一杯あるため、なかなかNetscapeには時間を
割けない状態です。
 そういうのもあって、協力していただける方があるととても助かります。

> ということで、HTML3の生成をカスタマイズしたいと思うのですが、
> どの辺りから手を付けたらよいのかという
> 指針を教えていただけるとありがたいです。

 SmartDocにおいてNetscape用のHTMLジェネレータを作る場合には、

(1) ジェネレータの生成方法
(2) Netscape用HTMLの要件

の2つの問題についての理解が必要になります。

1. ジェネレータの生成方法

 まずジェネレータの生成方法ですが、以下の選択肢があります。

(a) ジェネレータを生成(jp.gr.java_conf.jaba2.SmartDoc.SmartDocGenerator)
  (a-1) HTML3.2ジェネレータを改造
  (a-2) HTML4.0ジェネレータを改造
  (a-3) 新規にジェネレータを作成
(b) PureSmartDocからNetscape HTMLを生成するXSLTを作成

 オプションをたくさん用意する場合は(a)、決め打ちでよい場合は(b)を選択
するのが良さそうです。
 Netscape専用のHTMLを生成という目的であれば(b)がコストパフォーマンス
が良いと思われます。
# 稚拙な例ながらsdoc2html.xslがディストリビューションのetcに入っている
# ので、これを拡張するのも可能です。
 また、(a)を取るのであれば、(a-1)のHTML3.2ジェネレータを改造する方法
が魅力的ですが、Netscape用のチューニングを入れるとHTML3.2違反になる可
能性が大なので、ジェネレータとしては分けて登録する必要があります。

2. Netscape用HTMLの要件

 NetscapeはHTML4.0をほとんどまともに表示できません。
 SmartDoc的には以下の点が問題(+対応案)になります。

(2-1) <a href="foo">タグでid属性(e.g. <h2 id="foo2">)へのリンクができ
      ない

 <a name="foo">タグで代替できます。もともとのHTML3.2の仕様でもあるの
で、HTML3.2のページを生成するのと同じ手順でOKです。

(2-2) Dynamic HTMLが独自仕様

 Dynamic HTMLは使わなくても致命的な問題はないので、素直に諦めるのが得
策だと思います。

(2-3) CSSがまともに動かない

 これが最大の問題です。
 ここをやらないのであれば、現在のHTML3.2ジェネレータと(ほとんど)同じ
になってしまいます。
 つまりCSSなしでNetscape向けの見栄えの良いページを生成するというのが、
Netscape用HTMLジェネレータの眼目になると思います。

 普通の商用ページはGIF画像で、この問題を凌いでいるのですが、SmartDoc
的にはできるだけ画像は使いたくないので、<FONT color="red">や
<TD bgcolor="black">といったタグを駆使してスタイルを作っていくことにな
ります。

(2-4) <TABLE>の機能不足

 Netscapeでは<THEAD>, <TBODY>, <COLGROUP>, <COL>といったHTML4.0で導入
されたタグが全然動きません。
 これらのタグ相当のことを実現するためには<TH>や<TD>といった個々のタグ
に細かく設定を入れる必要があります。

-- 
あさみ@よこはま (http://www.netpassport.or.jp/~wtasami/)