風のまにまに号様が作成されMT用テンプレートと出会ってから、そろそろ1か月。
DWで作るWEBLOGテンプレートというところにまず興味を引かれたのですが、使っているうちにMTの構造を理解するのにとてもよい素材であることに気づきました。MTを使うならお勧めです。
最近、WEBLOGシステム自体、チュートリアルや特定のテーマについて整理するには向いていないのかもしれないと思い始めています。
ちょっと調べものをしたくても、目的の記事の行き着くまでが大変だからです。エントリーの多いサイト様の場合、カテゴリーで絞ったり、検索を使っても簡単には見つけられません。
そこで、記事が少ないうちに、と全記事カテゴリー別インデックスを作るなど、いろいろ模索中です。そんな作業をしていたら、いつもの寄り道癖でJavascriptいじりに夢中になっていました。なぜ?
コメント欄があるのにミニサイズのBBSを導入される方が多いことに気づいたから。見てみるとなにやらスクロールバーが邪魔そう・・・。これ、以前作ったJAVASCRITでスクロールできるんじゃないか?
そう思い立ち、さっそく作ってみたのですが、CGIをUTF-8対応にするのに手間取りました。
ようやく、方法を決め、検証を始めました。ところがどうしてもMAC-IEで文字化けする問題は解決できません。そこでしばし暫定配布。公開することで、よいお知恵をいただけるかもしれないという下心入りです。
設置方法をあらかじめ確認したい方は、続きを読む...へ進んでください。
CGIはJoygle様が制作され、改造・再配布許可で配布されているInlinboardのスクリプトを使わせていただきました。
ミニサイズのBBSはよそさまからも優れたものが数多く配布されていますが、これはスクロールバーを非表示にし、IFLAMEをスクロールするJAVASCRIPTを付加しました。JAVASCRIPTは海外のフォーラムで多くの方から寄せられたアイデアが基になっています。
フリーです。ご自由にお使いください。サンプルはすべて書き込みOK。文字サイズ、色、デザイン等は自由にカスタマイズできます。
-
+++ フリーツール::チビィエス:: +++
- 基本セット(設置ガイド入) →DL
- >>>・サンプル>このページの右下。折りたたみメニューの中に格納もできます。
-
WHITE(設置ガイドなし) →DL
>>>サンプル>>> -
PINK(設置ガイドなし) →DL
>>>サンプル2>>>
設置ガイドは黒バージョンにのみ添付しましたので他の色を使われる場合も、一緒にDLしてください。
- チビィエスの特徴(拙宅で付加した部分)
- 文字コードUTF-8のBBS=多言語対応(*1)
- スクロールバー非表示
- スクロールボタンにテキストか、画像を選べる
- 150px幅まで小さくしても使用に耐える
- 複数ページに同じBBSを設置できる 各ページでデザインの一部を変更できる
- 比較的自由にデザイン変更できる
- 一応クロスブラウザ(*2)
(*2)WIN-IE/NN7/OPERA、MAC(OS9.2)-IE5.1,NN6.1で確認。MAC-IE5では文字化けします。修正方法、鋭意研究中・・・
JAVASCRIPTはほぼ全環境で動作可能です。
MTをはじめとするWEBLOG(「ブログ」という音感が感覚的に大嫌いなので使いません)の醍醐味はトラックバックやコメントにあるのではないでしょうか。 小さな記事が、これらのシステムを使い、無限の知恵や情報に成長していく可能性を持っています。ところが、そのオープンな思想に目をつける奴がいるのですね。コメントスパマーとやらで、こんな辺境へも日に数十通のスパムが参ります。仕方なく、認証してから公開という偉そうなことをしなければなりません。そうなると気軽に書き込んでもらえるゲストブックがあるといいなぁ、と思う方は多いはず。そこで無謀にも再配布OKで公開されているCGIスクリプトをお借りし、改造を試みました。
正直なところ、 Perlはほとんど分かっていないので手探りでの改造です。
設置方法はここから>>>>
いちばん苦労したのはUTF-8への変更。あれこれ模索し、ようやく行き着いたのがこの方法です。Jcode.pmというjcode.plの後継モジュールを使いました。
-
+UTf-8化の参考にさせて頂いたサイト様
- Jcodeを使おう(実用本位のJcode紹介)
- Jcode.pm - jcode.pl の後継
- 「鷹の巣」の自宅サーバー(たいへん充実しています。自サーバーを目論んでいなくても損はありません)
作者のグラス様がShift_JISで書かれたCGIをわざわざUTF-8に書き換えたのは、MTの各 ページに設置することを想定していたため。やはりページに埋め込むツールは同じエンコードでないと気持ちが悪い--ただそれだけの理由です。
ところがこれが難関・・・。以前、英語バージョンのサイト用にBBSをUTF-8に変換した経験はありました。そのときはよく調べもせずに、jcode.plに関わる部分を#でコメントアウトし、HTML出力部分のエンコードをutf-8にするという強引な方法 を使ったのですが、どうやらこの方法では×のよう。(現在、そのBBSはスペイン語はOK、ハングルは×)
今回、 CGIをUTF-8で書き出すためにしたことは以下の通り。
注・これはPerl4で書かれたCGIの変更です。
- require '../jcode.pl'; → "use Jcode;"
- &jcode'convert(*val, "sjis"); → &Jcode::convert(*val,"utf8");
- HTMLの書き出し部のShift_JIS→UTF-8
これに加え、
1.コメントと名前を書き込むFORM、ログを書き出す部分のCSSにユニコードのフォントを指定。(ただし、これは両刃の刃。逆に文字化けの原因となることもある←過去の経験)
2.FORMのINPUTに文字コードUTF-8を指定→これは効果がなかったので削除。
3.すべてのドキュメントをUTF-8に変換し、保存し直す。
ところがここからがまた大変・・・。
文字コードに悩む
UTF-8のUnicodeのテキストをデータとして扱うためのフォーマットで、世界中文字が1つのセット入っている、つまり多言語を扱かえる--程度の理解しかしていませんでした。
現在、日本ならShift_JIS、欧米でならEUCでエンコードされているHPが一般的ですが、ゆくゆくはUTF-8が主流になるそうです。UTF-8の強みは、英語はもちろん、アラビア語もハングルも漢字も表示可できることにあります。つまり、ユニバーサルでグローバルというわけ(内容は別)。
ただし、表示にはユーザー側のPCにUTF-8対応フォントがなければいけません。最近はOSに付属している表示用フォントにもユニコードと名付けられたものが増えてきています。
そこで標準的なフォントか、字形グループ(serif,sans-serif)を指定しておけばいいだろうと,思ったのですが、これが大間違い。
実は完全にユニコードをサポートしているフォント自体がごくわずか。
つまり、システムフォントがなければどんな苦労も水の泡になりそうです。
フォントベンダーの大手(オーナーは元写研創設者の一人)モリサワが発表したサーバー側から表示フォントを供給するというオ ープンシステムのようなものが普及しない限り、無理なのかもしれません。よく中国語サイトなどにSIMsのDLに行くと「フォントをDLする?」とインフォされますが、これをサーバーでやったらいいんじゃん、というのがモリサワのシステムです。しかしながら、このシステム、ものすごく高価。小さな企業や個人事業主が主体のレンサバ環境で、プロバイダーが喜んで買うとは思えません・・・。
ウェブの場合、フォントはあくまでも閲覧者サイドが頼り。無理強いはできませんが、未練がましく、Arial Unicode MS、Lucida Sans Unicodeなどを指定してみました。現在、自環境では言語により表示にばらつきがあり、ロシア語、ハングルはOKで、ドイツ語、フランス語は化けるという状況です。なお、日本語についてはMAC-IE以外は一応表示できそうです。
テキストエディタにご注意
今回、一番勉強になったのはUTF-8にはUTF-8とUTF-8Nがあるということ。私、不覚にも知りませんでした。何の気なしに秀丸やTeraPad でUTF保存していたのです。ですからWINDOWSのメモ帳でもいいとばかり・・・。普段はMAC遣いのせいなので・・などと言い訳はできません。本当に無知でした。
実は、このメモ帳が失敗のもとでした。WINのメモ帳のUTF-8は”BOM”だからです。
BOMはByte Order Markの略。メモ帳でUTF-8のドキュメントを開き、保存すると、このBOMという余分なものが冒頭に勝手にくっついてしまうのです。
これに気づかず、秀丸でエディットし、ちょこっと直すのにメモ帳で開いたスクリプトをサーバーにアップしたところ、見事にサーバーエラー;;
なんと、一番大事なCGIへのパスの行頭に余分な字が加わっていたというわけです。
よくよくエディタを見れば、TeraPadでは漢字コードを選ぶところで、UTF-8かUTF-8Nを選ぶように、秀丸も保存ウィンドウでUTF8を選ぶと下に小さくにBOMにするかどうかを選ぶチェックボックスがありました。
どうぞ皆様、お気をつけください 。
UTF-8とエディタの関係についてはこちらで詳しく解説されています。→
さらに
UTF-8に対応しているテキストエディタの比較はこちらで→
そしてもう1つ不思議なことが---。
TeraPad というエディタでUTF8に変換し、保存した書類を秀丸で開くと、ものの見事に文字化けしてしまうのです。なぜなのでしょう???
何かが起きているらしいというのは分かるのですが、ちょっと追求する根性は残っていませんでした。ただ1ついえるのは、 もともとSift_Jisだったスクリプトを、TeraPad の漢字再指定読み込みでUTF8にしても、それはUTF8ではないということです。
CGIやJAVASCRIPTで、日本語が出てくる箇所は限られるので、そうたいへんではないのですが、結果から言うと、CGI中のコメント部分の日本語が最後までエラーとなり、結局、秀丸で全部書き直すことになりました。これ、コピペでシンタックスチェックをするアプリでは、補足できず、サーバーにアップしてCGIを動かして初めてエラーがでるというクワセモノでした。SAKURAエディタや、UTF8への対応で評判が高い xyzzy を使うとどうなるのでしょう?
もっと悲しいことは、これだけ試行錯誤をしてもMAC-IE5での文字化けは修正できなかったということです。MAC-NNでは文字化けしませんが、どうぞそのことを心に留め、お使いください。
文字化けしていてもMAC-IE5で書き込んだコメントはWIN、MAC-NNではちゃんと表示されます。
つまり、UTF-8で書き込まれているということなので、あとはシステムフォントの問題なのでしょうか? まだ謎です。
この記事に対するコメント