diff options
Diffstat (limited to 'gemini.filter.dpi')
-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 } |