function strip_markdown(s) { gsub(/<[^>]+>/, "", s) gsub(/[*_`~]/, "", s) gsub(/[\[\]]/, "", s) gsub(/\([^\)]*\)/, "", s) sub(/^[[:space:]]*/, "", s) sub(/[[:space:]]*$/, "", s) return s } BEGIN { has_prev = 0 in_pre = 0 } { if ($0 ~ /^
/) {
in_pre = 1
if (has_prev && prev != "") { print prev; has_prev = 0 }
print
next
}
if (in_pre) {
if ($0 ~ /<\/code><\/pre>/) in_pre = 0
print
next
}
if ($0 ~ /^=+$/ && has_prev && prev != "" && prev !~ /^<[a-z]/) {
print "" prev "
"
has_prev = 0
} else if ($0 ~ /^-+$/ && has_prev && prev != "" && prev !~ /^<[a-z]/) {
print "" prev "
"
has_prev = 0
} else {
if (has_prev) {
line = prev
if (line ~ /^# /) {
sub(/^# /, "", line); print "" line "
"
} else if (line ~ /^## /) {
sub(/^## /, "", line); print "" line "
"
} else if (line ~ /^### /) {
sub(/^### /, "", line); print "" line "
"
} else if (line ~ /^#### /) {
sub(/^#### /, "", line); print "" line "
"
} else if (line ~ /^##### /) {
sub(/^##### /, "", line); print "" line "
"
} else if (line ~ /^###### /) {
sub(/^###### /, "", line); print "" line "
"
} else {
print prev
}
}
prev = $0
has_prev = 1
}
}
END {
if (has_prev) {
line = prev
if (line ~ /^# /) {
sub(/^# /, "", line); print "" line "
"
} else {
print prev
}
}
}