aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xgemini.filter.dpi27
1 files changed, 24 insertions, 3 deletions
diff --git a/gemini.filter.dpi b/gemini.filter.dpi
index bebf3ba..86ecf8a 100755
--- a/gemini.filter.dpi
+++ b/gemini.filter.dpi
@@ -29,7 +29,10 @@ render_gemini() {
else
sed 's/^\(=>\s*\)\(\S*\)*\(.*\)/\1<a href="\2">\2<\/a>\3/' | awk '
BEGIN {
- print "<!doctype html><body style=\"font:monospace; white-space:pre-wrap\">"
+ print "<!doctype html><body><style>"\
+ "div { font:monospace; white-space:pre-wrap; }\n"\
+ "h1, h2, h3 { margin: 0; }\n"\
+ "</style>"
}
/^```/ {
if (!in_literal) {
@@ -45,16 +48,34 @@ render_gemini() {
print
next
}
+ in_list && !/^\*/ {
+ in_list = 0
+ print "</ul>"
+ }
+ /^\*/ {
+ if (!in_list) {
+ in_list = 1
+ printf "<ul>"
+ }
+ match($0, /^\*+\s*/)
+ text = substr($0, RLENGTH+1)
+ printf "<li>%s</li>\n", text
+ next
+ }
/^#+/ {
match($0, /^#+/)
tag = "h" RLENGTH
match($0, /^(#+\s*)/)
text = substr($0, RLENGTH+1)
- printf "<%s style=\"font:sans-serif\">%s</%s>", tag, text, tag
+ printf "<%s style=\"font:sans-serif\">%s</%s>\n", tag, text, tag
+ next
+ }
+ /^$/ {
+ print "<br>"
next
}
{
- print
+ printf "<div>%s</div>\n", $0
}
END {
print "</body>"