aboutsummaryrefslogtreecommitdiff
path: root/gemini.filter.dpi
diff options
context:
space:
mode:
authorcel <cel@lOUVT+Phkvai9a/cCS/RKo+S9hnPAQdVixms/7ldpPA=.ed25519>2020-05-19 19:38:10 -0400
committercel <cel@lOUVT+Phkvai9a/cCS/RKo+S9hnPAQdVixms/7ldpPA=.ed25519>2020-05-19 20:26:15 -0400
commit0123ab979aaff826b63f29cad644a797fdc6a690 (patch)
treea4ab7173a5cea0d394178ef4e041de9bf00f98b1 /gemini.filter.dpi
parent60008b38698503efbe578f96dbb5bf8e5e7e9630 (diff)
Handle preformatted toggle lines
Diffstat (limited to 'gemini.filter.dpi')
-rwxr-xr-xgemini.filter.dpi28
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/^\(=&gt;\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
}