diff options
author | cel <cel@lOUVT+Phkvai9a/cCS/RKo+S9hnPAQdVixms/7ldpPA=.ed25519> | 2020-05-19 19:38:10 -0400 |
---|---|---|
committer | cel <cel@lOUVT+Phkvai9a/cCS/RKo+S9hnPAQdVixms/7ldpPA=.ed25519> | 2020-05-19 20:26:15 -0400 |
commit | 0123ab979aaff826b63f29cad644a797fdc6a690 (patch) | |
tree | a4ab7173a5cea0d394178ef4e041de9bf00f98b1 | |
parent | 60008b38698503efbe578f96dbb5bf8e5e7e9630 (diff) |
Handle preformatted toggle lines
-rwxr-xr-x | gemini.filter.dpi | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/gemini.filter.dpi b/gemini.filter.dpi index 3ae1f4f..e16aee6 100755 --- a/gemini.filter.dpi +++ b/gemini.filter.dpi @@ -27,9 +27,31 @@ render_gemini() { then ansi2html | sed 's/^\(=>\s*\)\(\S*\)*\(.*\)/\1<a href="\2">\2<\/a>\3/' else - printf "<!doctype html><pre style='white-space: pre-wrap'>" - sed 's/^\(=>\s*\)\(\S*\)*\(.*\)/\1<a href="\2">\2<\/a>\3/' - printf "%s" "</pre>" + sed 's/^\(=>\s*\)\(\S*\)*\(.*\)/\1<a href="\2">\2<\/a>\3/' | awk ' + BEGIN { + print "<!doctype html><body style=\"font-family:monospace; white-space:pre-wrap\">" + } + /^```/ { + if (!in_literal) { + in_literal = 1 + print "<pre>" + } else { + in_literal = 0 + print "</pre>" + } + next + } + in_literal { + print + next + } + { + print + } + END { + print "</body>" + } + ' fi } |