#! /usr/bin/gawk -f # Last edited on 2003-06-17 22:54:05 by stolfi BEGIN { abort = -1; usage = ( ARGV[0] " [-v title='TITLE'] INFILE.bib... > OUTFILE.html" ); # Trivially turns a .bib file into an .html file, # in <pre> ... </pre> format, with a <a name="TAG"> anchor # for each entry, where TAG is the entry's bibtex tag. if (title == "") { title = "BibTeX entries"; } printf "<html>\n" ; printf "<head>\n"; printf "<title>%s</title>\n", title; printf "</head>\n"; printf "<body bgcolor=\"#ffddbb\">\n"; printf "<h1><tt>%s</tt></h1>\n", title; curfile = ""; } (abort >= 0) { exit abort; } (curfile != FILENAME) { if (curfile != "") { printf "</pre></tt>\n"; printf "\n"; } printf "<h2><tt>%s</tt></h2>\n", FILENAME; printf "<tt><pre>\n"; curfile = FILENAME; } /./ { gsub(/[&]/, "&", $0); gsub(/[<]/, "<", $0); gsub(/[>]/, ">", $0); } /^[ \011]*[%]/ { printf "<font color=\"#115500\">%s</font>\n", $0; next; } /^[ \011]*[@][a-zA-Z0-9]*[ \011]*[{][ \011]*[-a-zA-Z0-9]+[ \011]*[,][ \011]*$/ { gsub(/[ \011,@]*/, "", $0); gsub(/[{]/, " ", $0); if (NF != 2) { error(("prog error")); } kind = $1; tag = $2; printf "<a name=\"%s\">\n", tag; printf "@%s{<font color=\"#dd1100\">%s</font>,\n", kind, tag; next } /^[ \011]*[@]/ { error(("bad tag format")); } // { print; next; } END { if (abort >= 0) { exit abort; } if (curfile != "") { printf "</pre></tt>\n"; } printf "</body>\n"; printf "</html>\n"; } function error(msg) { printf "file %s, line %s: %s\n", FILENAME, FNR, msg > "/dev/stderr"; abort = 1; exit abort; }