#! /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
 ... 
format, with a anchor # for each entry, where TAG is the entry's bibtex tag. if (title == "") { title = "BibTeX entries"; } printf "\n" ; printf "\n"; printf "%s\n", title; printf "\n"; printf "\n"; printf "

%s

\n", title; curfile = ""; } (abort >= 0) { exit abort; } (curfile != FILENAME) { if (curfile != "") { printf "\n"; printf "\n"; } printf "

%s

\n", FILENAME; printf "
\n"; 
  curfile = FILENAME;
}

/./ {
  gsub(/[&]/, "&", $0);
  gsub(/[<]/, "<", $0);
  gsub(/[>]/, ">", $0);
}  

/^[ \011]*[%]/ {
  printf "%s\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 "\n", tag;
  printf "@%s{%s,\n", kind, tag;
  next
}

/^[ \011]*[@]/ {
  error(("bad tag format"));
}

// {
  print; 
  next;
}

END {
  if (abort >= 0) { exit abort; }
  if (curfile != "") { printf "
\n"; } printf "\n"; printf "\n"; } function error(msg) { printf "file %s, line %s: %s\n", FILENAME, FNR, msg > "/dev/stderr"; abort = 1; exit abort; }