i-mode用にページをコンバートする。
画面数が大きすぎて端末では表示できませ〜ん
少なくしました(笑)
こんなのも..
i-modeはパケット課金である。従って余計なタグやリターンコードは取り除いてやった方が親切
と言うモンだ。
F&Fのページは「段落」タグが使ってあるので、意外にページサイズが大きい。
例えばトップページの雑記はこんな風に書かれている。
---------------
◆ −−−−−−−−ここに毎日の雑記本文が入る−−−−−−−−−−−−
−−−−−−−−ここに次の行が入る−−−−−−−−−−−−−−−−
---------------
最初の"◆ "の部分に相当する次の行の先頭にはスペースが入っている。
従ってタグで書くと、
<P><FONT COLOR="#FF0080">◆ </FONT><FONT COLOR="#000000">−−本文最初の行−−</FONT></P>
<P><FONT COLOR="#000000"> −−本文次の行−−</FONT></P>
となり、これが行数分繰り返されているのだ。
ここでまず不要なのは<P>と</P>の段落タグで、しかし◆ の前には<BR>を入れて行の先頭をそろ
えたい。
そしてCR/LFも取り去って不要なカラー指定タグも取ればいいだろう。
そこでまずsedで不要なタグを抜くことにした。
が、CR/LFがうまく抜けなかったのでPerlで手伝うという、おかしな形になった。
新規に作るなら全部Perlでやった方がいいに決まっている。
[1]sed '/<[Pp]>/s///g' 元のファイル.htm > iモード用ファイル.htm
[2]sed '/<\/[Pp]>/s///g' iモード用ファイル.htm > テンポラリファイル.htm
[3]sed '/ /s///g' /home/www/docs/ff/テンポラリファイル.htm > /home/www/docs/ff/iモード用ファイル.htm
[4]sed '/◆ /s//<BR>◆ /g' iモード用ファイル.htm > テンポラリ.htm
[5]cp iモード用ヘッダファイル.htm iモード用ファイル.htm
[6]cat テンポラリファイル.htm >> iモード用ファイル.htm
[7]cr.pl < iモード用ファイル.htm > テンポラリファイル.htm
[8]sed '/◆ <\/FONT><FONT COLOR="\#000000">/s//◆ <\/FONT><FONT
COLOR="\#000001"> /g' テンポラリファイル.htm > iモード用ファイル.htm
[9]sed '/<\/FONT><FONT COLOR="\#000000">/s///g' iモード用ファイル.htm
> テンポラリファイル.htm
[10]ls -l テンポラリファイル.htm | awk '{print($5)}' > len.txt
[11]len.pl < len.txt > iモード用ファイル.htm
[12]cat iモード用ファイル.htm >> テンポラリファイル.htm
[13]cp テンポラリファイル.htm iモード用ファイル.htm
[1]..[P]或いは[p]を取り除く
[2]..[/P]或いは[/p]を取り除く
[3]..倍角スペース2個を取り除く
[4].."◆ "の前に<BR>を入れる
[5]..iモード用のヘッダファイルをコピーする
[6]..iモード用のヘッダファイルを付ける。
[7]..CR/LFを取り除くためのPerl
[8]..不要な<FONT>ファイルを取り除くのだが、必要なところが取り除かれないように色指定を変えておく。
[9]..余計な</FONT>および<FONT.....>タグを取り除く
[10].iモード用ファイルのファイルサイズを取得する
[11].ファイルサイズからパケット料金を計算する
[12].計算結果をiモード用ファイルにくっつける
[13].書き戻して終わり
−−−−
cr.pl(CR/LFを取るためのもの)
#!/usr/bin/perl
while (<STDIN>) {
$_ =~ s/\n//;
$_ =~ s/\r\n//;
print;
};
※このスクリプトの中でSEDでやっていることをやればスマートになる。
下のlen.plも一緒にくっつけてしまえばいい。
−−−−
len.pl(パケット料金を計算するためのもの)
#!/usr/bin/perl
while (<STDIN>) {
$_ = $_ + 999;
$_ = int($_ / 128 * 0.3);
print "<BR><FONT COLOR=\"\#0000FF\">";
print "本日のパケット料金は";
print;
print "円です";
print "<\/FONT><\/BODY>"; };
※999はヘッダおよび画像ファイルサイズ
−−−−
i-mode用の画面は、i-mode端末がフレームページをサポートしていないことを利用して、
<NOFRAME>タグの中に書くことにした。
−−−−index.htmlの中身
<HEAD> <TITLE>Fast & First</TITLE>
<META NAME="WWWC" CONTENT="<!--#exec cmd="./timewwwc.prg
雑記.htm"-->">
</HEAD>
<FRAMESET ROWS="*,68" FRAMEBORDER=NO BORDER=0 FRAMESPACING=0>
<FRAME SRC="main.html" NAME="MAIN1" SCROLLING=AUTO
MARGINWIDTH="15" MARGINHEIGHT ="15" BORDERCOLOR="f0f0b0">
<FRAMESET ROW="0,*">
<FRAME SRC="load.html" NAME="SUB1" SCROLLING=NO
NORESIZE MARGINWIDTH="0" MARGINH EIGHT="0" BORDERCOLOR="f0f0b0">
</FRAMESET>
<NOFRAMES>
<BODY> i-modeでも本日分の雑記だけは見ることが出来ます。<BR>
<a href="iモード用ファイル.htm">今日の雑記</a><br>
<br><br>
このページはフレーム構成です。 <a href="main.html">ココ</a>をクリックすれば、メインページにジャンプします。<BR>
Last-modified
<!--#exec cmd="./timewwwc.prg 雑記.htm"-->
</BODY></FRAMESET> </HTML>
−−−−
こうすることによってi-mode端末でも毎日の雑記だけは見ることが出来る仕掛けだ。