aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcel <cel@lOUVT+Phkvai9a/cCS/RKo+S9hnPAQdVixms/7ldpPA=.ed25519>2020-05-19 20:20:48 -0400
committercel <cel@lOUVT+Phkvai9a/cCS/RKo+S9hnPAQdVixms/7ldpPA=.ed25519>2020-05-19 20:28:29 -0400
commit58ae2f9f0140e5899b884649b5599091d6c49c36 (patch)
tree8fa112358404129304a3d144e440494fedb75d81
parentdd96e675ca9b0f50b38a6ceb2a9624a90ab74042 (diff)
Render links in awk
-rwxr-xr-xgemini.filter.dpi13
1 files changed, 12 insertions, 1 deletions
diff --git a/gemini.filter.dpi b/gemini.filter.dpi
index 86ecf8a..4196a81 100755
--- a/gemini.filter.dpi
+++ b/gemini.filter.dpi
@@ -27,7 +27,7 @@ render_gemini() {
then
ansi2html | sed 's/^\(=&gt;\s*\)\(\S*\)*\(.*\)/\1<a href="\2">\2<\/a>\3/'
else
- sed 's/^\(=>\s*\)\(\S*\)*\(.*\)/\1<a href="\2">\2<\/a>\3/' | awk '
+ awk '
BEGIN {
print "<!doctype html><body><style>"\
"div { font:monospace; white-space:pre-wrap; }\n"\
@@ -70,6 +70,17 @@ render_gemini() {
printf "<%s style=\"font:sans-serif\">%s</%s>\n", tag, text, tag
next
}
+ /^=>/ {
+ match($0, /^=>\s*/)
+ prefix = substr($0, 0, RLENGTH)
+ href = substr($0, RLENGTH+1)
+ if (match(href, /^\S+/)) {
+ text = substr(href, RLENGTH+1)
+ href = substr(href, 0, RLENGTH)
+ }
+ printf "<div>%s<a href=\"%s\">%s</a>%s</div>\n", prefix, href, href, text
+ next
+ }
/^$/ {
print "<br>"
next