BEGIN { in_dl = 0 has_prev = 0 prev_line = "" in_pre = 0 } { if ($0 ~ /^
/) {
        if (!in_pre) in_pre = 1
    }
    
    if (!in_pre && $0 ~ /^:[ \t]+[^ \t]/) {
        if (!in_dl) {
            in_dl = 1
            print "
" print "
" prev_line "
" has_prev = 0 } else { if (has_prev && prev_line != "") { print "
" prev_line "
" has_prev = 0 } } def_text = $0 sub(/^:[ \t]+/, "", def_text) print "
" def_text "
" if ($0 ~ /<\/pre>/) { if (in_pre) in_pre = 0 } next } else { if (in_dl) { if ($0 == "") { # End of definition list print "
" in_dl = 0 print "" has_prev = 0 next } } if (has_prev) { print prev_line } prev_line = $0 has_prev = 1 } if ($0 ~ /<\/pre>/) { if (in_pre) in_pre = 0 } } END { if (in_dl) { print "" } else { if (has_prev) { print prev_line } } }