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端末でも毎日の雑記だけは見ることが出来る仕掛けだ。