映画感想用テキスト→HTMLコンバータ

映画感想のHTMLを生成するためのフィルタプログラムです。
これで生成した HTML をエディタで合成して使用しています。
Windows NT/2000 上で使用しているので、漢字はシフトJISになっています。
[使用法] perl fmtkansou.pl src.txt >dist.html

リンクを抜き出す部分を一部変更しました。(2001/10/09)


#!/usr/local/bin/perl
# 映画感想 TEXT -> HTML 変換

$mode = 0;
$t = "";
$d = "";
@body = ();

while (<>) {
    if ($mode == 0) {
        $t = $_;
        $mode = 1;
    } elsif ($mode == 1) {
        $d = $_;
        $mode = 2;
    } else {
        if ( /^\n/ ) {
# 改行のみの行は、HTML上での強制改行にする
            push(@body, "<BR>\n");
        } elsif ( /http:/ ) {
# http:〜 をリンクに加工する
            $i = index($_, "http:");
            $s0 = substr($_, 0, $i); 
            $s1 = substr($_, $i);
            for ($i = 5 ; $i < length($s1) ; $i++) {
                $c = substr($s1, $i, 1);
                unless ( $c =~ /[\w\-\/.~_]/ ) {
                    last;
                }
            }
            $s2 = substr($s1, $i);
            $s1 = substr($s1, 0, $i);
            push(@body, $s0);
            push(@body, '<A HREF="' . $s1 . '">' . $s1 . '</A>');
            push(@body, $s2);
        } else {
# その他
            push(@body, $_);
        }
    }
}

outhtml();


sub     outhtml     {
    my $yy;
    my $mm;
    my $dd;
    ($yy, $mm, $dd) = split( /\//, $d );
    chomp($dd);

    print "<!-- ****************************************************** -->\n";
    print "<A NAME=\"$yy$mm$dd\">\n";

    print "<DIV ALIGN=CENTER>\n";
    print "<BR><TABLE BORDER=0 BGCOLOR=#00d000><TR><TD><FONT COLOR=#000000 SIZE=\"+2\">";
    print "$t";
    print "</FONT></TD></TR></TABLE><BR>";
    print "鑑賞日 $d<BR><BR>";
    print "<TABLE WIDTH=85%>\n";
    print "<TR><TD>\n";
    print @body;
    print "</TD></TR>\n";
    print "</TABLE>\n";
    print "</DIV>\n";
    print "<BR><HR>\n";
}


総合ホームページ Perl納戸部屋