#! /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\n"; $q_flag == 0; } } elsif ( /^<# # 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"; End of Format print OUT $header_footer; # # Output IDX file header # print IDX <<"End of Header";
OB 会通信 $vol_number $vol_date
$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
$title |
End of Format print OUT $out_buff; $index_text = "\n"; $q_flag == 0; } print OUT "\n$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