#! /usr/bin/perl # # HTML maker for HUSO OB-kai essay WebPages. by Makoto Hiroshige # # 99-01-04 # # Trim space characters before/after contents. # sub trim_line { local($_) = $_[0]; $_ = $1 if /^\s*(.*)\s*$/; $_ = $2 if /^(\xa1\xa1)*(.*)(\xa1\xa1)*$/; # Zenkaku space in EUC } # # Main Routine # # # Colors # # $bg_color = "#f3f3f3"; # $title_bgcolor = "#ffaaaa"; $bg_color = "#f0fff0"; $title_bgcolor = "#aaffaa"; # # Flags # $p_flag = 0; # A flag for paragraph $q_flag = 0; # A flag for auto
$pre_flag = 0; # A flag for

#
# Open output files.
#
die "File names must be \"essayXX.txt\"." 
    unless $ARGV[0] =~ /essay(\d\d).txt$/;
$number = $1;

$out_file = "essay$number.htm";
$index_file = "essay$number"."idx.htm";

open(OUT, ">$out_file") || die "Can't open $out_file.\n";
open(IDX, ">$index_file") || die "Can't open $index_file.\n";

#
# Output OUT file header
#
print OUT <<"End of Header";



   HUSO OB essay No.$number 


End of Header

while(<>){

    chop;

    if ( /^$/ ) {
        if ( $pre_flag == 1 ) {
	    print OUT "\n";
	}
	else {
	    $p_flag = 1;
	}
    }
    elsif ( /^<>(.*)/ ) {
	$vol_number = &trim_line($1);
    }
    elsif ( /^<
>(.*)/ ) { $vol_date = &trim_line($1); $header_footer = <<"End of Format";
OB 会通信 $vol_number $vol_date
End of Format print OUT $header_footer; # # Output IDX file header # print IDX <<"End of Header";

$vol_number $vol_date

    End of Header } elsif ( /^<>(.*)/ ) { $anchor = &trim_line($1); # ($number, $order, $indexname) = split; $p_flag = 0; if( $q_flag == 1 ) { print OUT "\n
\n"; $q_flag == 0; } } elsif ( /^<>(.*)/ ) { $title = &trim_line($1); $p_flag = 0; } elsif ( /^<>(.*)/ ) { $auther = &trim_line($1); $out_buff = <<"End of Format";

$title
$auther

End of Format print OUT $out_buff; $index_text = "
  • $title $auther\n"; print IDX "$index_text\n"; $p_flag = 0; $q_flag = 1; } elsif ( /^
    $/ ) {
    	$pre_flag = 1;
            print OUT "\n$_\n";
        }
        elsif ( /^<\/pre>$/ ) {
    	$pre_flag = 0;
            print OUT "\n$_\n";
        }
        elsif ( /^<[\/a-z]+>$/ ) { # Other tags are printed through AS IS.
            print OUT "\n$_\n";
        }
        else {
            if ( $p_flag == 1 ) {
        	    # print OUT "\n

    \n\xa1\xa1"; # Zenkaku space indent print OUT "\n

    \n"; $p_flag = 0; } if ( $pre_flag == 1 ) { print OUT "$_\n"; } else { print OUT &trim_line($_); } } } if( $q_flag == 1 ) { print OUT "\n

  • \n"; $q_flag == 0; } print OUT "\n
    \n"; print OUT $header_footer; # # Output OUT file footer # print OUT <<"End of footer"; End of footer # # Output IDX file footer # print IDX <<"End of footer"; End of footer close OUT; close IDX;