# # 辻潤年譜 TsujiJun-Chrno-Tada.html から簡略版を作る # # ruby -Ks abrchrno.rb TsujiJun-Chrono-Abridged.html # tdskip = 3 #..のskip回数 # # までそのまま出力 # while line = gets() print line break if line =~ /<title>/i end gets() print "辻潤年譜 Tada of Alangri-Gloriban Abridged\n" # # </table>まで出力 # while line = gets() line.sub!(/辻潤年譜/, "辻潤年譜(簡略版)") line.sub!(/Tada of Alangri-Gloriban/,"Tada of Alangri-Gloriban Abridged") print line break if line =~ /<\/table>/i end # 年譜本体の<tableまでそのまま出力 # while line = gets() line.chomp! if line =~ /<table[ >]/i print $`,$& line = $' break end print line, "\n" end phase = 0 begin line.chomp! # # 引用を削除する # line.gsub!(/〈.*?〉・〈.*?〉/,"") line.gsub!(/〈.*?〉、〈.*?〉/,"") line.gsub!(/〈.*?〉/,"") # case phase when 0 #<tr if line =~ /.*?<\/table>/i #table終了 1行に</table>のみ print $&,"\n" line = $' break #End end if line =~ /.*?<tr[ >]/i print $& line = $' phase += 1 tdctr = 0 redo else print line, "\n" end when 1 #<td 3回 line.gsub!(/<td width[ =].*?>/i, "<td>") if line =~ /.*?<td[ >]/i print $& line = $' phase += 1 tdctr += 1 redo else print line, "\n" end when 2 #</td> 3回で終わり if line =~ /.*?<\/td>/i print $& line = $' if tdctr == tdskip tablectr = 0 phase += 1 else phase -= 1 end if line == "" next end redo else print line, "\n" end when 3 #</tr> まで skip if line =~ /<table[> ]/ tablectr += 1 end if tablectr > 0 #<table>..</table>の処理 if line =~ /<\/table/ tablectr -= 1 end elsif line =~ /.*?(<\/tr>)/i print $1,"\n" phase = 0 line = $' if line == "" next end redo end end end while line = gets() # for debug if (phase == 0 && tdctr != tdskip) || tablectr != 0 print phase, tdctr, tablectr,"\n" print "!something wrong!" end # # 参考文献を削除する # <hr>..<hr>の前 # while line = gets() print line break if line =~ /<hr[ >]/i end while line = gets() break if line =~ /<hr[ >]/i end print line, "\n" # 残りを出力 while line = gets() print line end # end of abrchrono.rb