HNS to fdus converter
いつか再利用するかもしれないのでメモ。日記システムのログコンバーターです。
#!/usr/bin/perl #2007/9/9 #hns2fdus. #This Program converts HNS to fdus format. $dbg = 0; while(<*.hnf>){ $name = $oname = $_; $name =~ s/^d//; $name =~ s/hnf/hd/; if($dbg){print "$oname $name\n";} open(FILE,"$oname"); $flg_new = 0; $out_line = ""; while(<FILE>){ $line = $_; next if($line =~ /^OK/); $line =~ s/^UL/<ul>/; $line =~ s/^\/UL/<\/ul>/; $line =~ s/^PRE/<pre>/; $line =~ s/^\/PRE/<\/pre>/; $line =~ s/^LI /<li>/; $line =~ s/^SUB (.*)/<h4>$1<\/h4>/; $line =~ s/~$/<br>/; $line =~ s/^NEW /:::/; $line =~ s/^URL (\S+)\s(.+)/<a href="$1">$2<\/a>/; $line =~ s/^LINK (\S+)\s(.+)/<a href="$1">$2<\/a>/; $line =~ s/^FN/\(/; $line =~ s/^\/FN/\)/; $line =~ s/^LNEW (\S+)\s(.+)/:::<a href="$1">$2<\/a>/; $line =~ s/^P$/<p>/; $line =~ s/^\/P$/<\/p>/; if($line =~ /^$/){ if(!$flg_new){ if($dbg){ print "<p>\n";} $out_line .= sprintf "<p>\n"; $flg_new = 1; } else{ if($dbg){print "</p>\n";} $out_line .= sprintf "</p>\n"; $flg_new = 0; } }else{ if($dbg){print $line;} $out_line .= sprintf $line; } } #pタグの閉じ忘れ防止 if($flg_new){ if($dbg){print "</p>\n";} $out_line .= sprintf "</p>\n"; $flg_new = 0; } if($dbg){print "===========================\n";} close(FILE); #print "out_line=$out_line\n"; open(FILE,">$name"); print FILE $out_line; close(FILE); #exit; }
This program is a log converter from HNS to fdus format.