global header, mode; global empty_line_count; global para_started; global list_count; BEGIN { header = 1; mode = 0; empty_line_count = 0; para_started = 0; output=ARGV[0]; gsub (/\.man/, ".html", output); #print "OUTPUT TO: " output; print ""; print ""; print ""; } header && /^\.[[:alpha:]]+[[:space:]]/ { if ($1 == ".title") { print "" $2 ""; } } header && !/^\.[[:alpha:]]+[[:space:]]/ { header = 0; print ""; print ""; } !header { local text; if (mode == 0) { if (/^$/) { # empty line if (para_started) { para_started = 0; print "

"; } empty_line_count++; } else { if (/^= [^=]+ =$/) { if (para_started) { print "

"; para_started = 0; } text=substr($0, 2, length($0)-2); print "

" text "

"; } else if (/^== [^=]+ ==$/) { if (para_started) { print "

"; para_started = 0; } text=substr($0, 3, length($0)-4); print "

" text "

"; } else if (/^=== [^=]+ ===$/) { if (para_started) { print "

"; para_started = 0; } text=substr($0, 4, length($0)-6); print "

" text "

"; } else if (/^==== [^=]+ ====$/) { if (para_started) { print "

"; para_started = 0; } text=substr($0, 5, length($0)-8); print ""; } else if (/^\{\{\{$/) { # {{{ if (para_started) { print "

"; para_started = 0; } print "
";
				mode = 1;
			}
			else if (/\[\[\[/)
			{
				if (para_started)
				{
					print "

"; para_started = 0; } print "
"; mode = 0; } else { gsub ("<", "\\<"); gsub (">", "\\>"); print $0; } } else if (mode == 2) { if (/^]]]$/) { # ))) print ""; print ""; mode = 0; } else if (/^\* [^[:space:]]+/) { gsub ("<", "\\<"); gsub (">", "\\>"); if (list_count > 0) print ""; print "
  • "; print substr ($0, 3, length($0)-2); list_count++; } else { gsub ("<", "\\<"); gsub (">", "\\>"); print $0; } } } END { print ""; print ""; }