#! /usr/bin/gawk -f # Last edited on 2004-02-04 07:20:59 by stolfi BEGIN { # User must define "-v fname=..." printf "# === %s =============================================================\n", fname; gsub(/^[0-9]+[-]/, "", fname); gsub(/[.]htm/, "", fname); book = fname; gsub(/[-][0-9]+/, "", book); book = toupper(book); chapnum = fname; gsub(/^[a-z]+[-]/, "", chapnum); chapnum = chapnum + 0; } /^ *$/ { next; } // { gsub(/[\011]/, " "); gsub(/[|] *$/, ""); gsub(/^ *[|]/, ""); gsub(/<[Bb][Rr]>/, ""); gsub(/>[| ]+ <"); gsub(/[&]nbsp;/, " "); gsub(/^[ ]+/, ""); gsub(/[ ]+$/, ""); gsub(/[ ][ ]+/, " "); } /^<[\/]*HTML>$/ { next; } /^<[\/]*html>$/ { next; } /^<[\/]*HEAD>$/ { next; } /^]*>$/ { next; } /^<[\/]*BODY[^<>]*>$/ { next; } /^<[\/]*body[^<>]*>$/ { next; } /^[^<>A-Za-z]*[ ][A-Z][a-z]+<[\/]TITLE>$/ { lin = $0; lin = gensub(/<TITLE>([^<>A-Za-z]*)[ ]([A-Z][a-z]+)<[\/]TITLE>/, \ ("@chapter{" chapnum "}{" book "}{\\1}{\\2}"), "g", lin); print lin; next; } /^<h1[^<>]*>[^<>A-Za-z]*[ ][A-Z][a-z]+<[\/]h1>$/ { # lin = $0; # lin = gensub(/<h1[^<>]*>([^<>A-Za-z]*)[ ]([A-Z][a-z]+)<[\/]h1>/, \ # "@chapter{???}{\\1}{\\2}", "g", lin); # print lin; next; } /^[[][|].*[|][]]$/ { next; } /^<hr>$/ { next; } /^<[\/]*font[^<>]*>$/ { next; } /^<[\/]*font[^<>]*>[0-9 ]+<[\/]font>$/ { next; } /^<table><tr><td valign=top><font size=[+]2>[^<>]*<[\/]font><td><font size=[+]1>$/ { next; } /^<[\/]*font[^<>]*><[\/]table><p>$/ { next; } /^<[\/]*table>$/ { next; } /^<a href=[^<>]*>[^<>]*<[\/]a>$/ { next; } /^<a href=[^<>]*><font[^<>]*>[^<>]*<[\/]font><[\/][Aa]>$/ { next; } /^<a TARGET=[^<>]*>[^<>]*<[\/][Aa]>$/ { next; } /^<a TARGET=[^<>]*>[^<>]*<[\/][Aa]>[^<>]*<a TARGET=[^<>]*>[^<>]*<[\/][Aa]>$/ { next; } /^<tr><td valign=top><font size=-1>[0-9]+:[0-9]+<[\/]font><[\/]td><td>[^<>]*<[\/]td>$/ { lin = $0; lin = gensub(/<tr><td valign=top><font size=-1>([0-9]+)[:]([0-9]+)<[\/]font><[\/]td><td>([^<>]*)<[\/]td>/, \ (" @verse{" book "}{\\1}{\\2} \\3"), "g", lin); print lin; next; } /^<[\/]*tr>$/ { next; } /^<[\/]*p>$/ { next; } /^<[\/]*center>$/ { next; } // { print next; }