diff options
-rwxr-xr-x | gmi2html.awk | 68 |
1 files changed, 37 insertions, 31 deletions
diff --git a/gmi2html.awk b/gmi2html.awk index 91f863c..42334ac 100755 --- a/gmi2html.awk +++ b/gmi2html.awk @@ -1,6 +1,6 @@ # gmi2html.awk # -# Copyright (c) 2021 Rodrigo S. Caņibano (dracometallium) +# Copyright (c) 2021 Rodrigo S. Canibano (dracometallium) # Copyright (c) 2021 Jeremy Potter (jwinnie) # # Permission is hereby granted, free of charge, to any person obtaining a copy of this @@ -16,27 +16,27 @@ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # -# Usage: -# $ awk -f gmi2html.awk -- $1 $2 $3 < path/to/gmi > path/to/html -# -# Where: -# - $1 is the title of the site, used in <title> -# - $2 is the path of the stylesheet, relative to the HTML document -# - $3 is the URL of the original Gemini site (it is linked to in the -# footer of the HTML site) +# usage: +# $ awk -f gmi2html.awk -- <title> <css> <url> < path/to/gmi > path/to/html # +# parameters: +# <title>: the title of the document, used in the HTML <title> +# <css>: relative path to a CSS stylesheet +# <url>: URL of the original Gemini document, linked in the footer # Begin HTML document BEGIN { - printf "<!DOCTYPE html>\ - <head>\ - <meta charset=\"utf-8\">\ - <meta name=\"viewport\" content=\"width=device-width,initial-scale=1\">\ - <link rel=\"stylesheet\" type=\"text/css\" href=\"%s\">\ - <title>%s</title>\ - </head>\ - <body>", ARGV[2], ARGV[1] - pre = 0 + printf "\ +<!DOCTYPE html>\ +<head>\ +<meta charset=\"utf-8\">\ +<meta name=\"viewport\" content=\"width=device-width,initial-scale=1\">\ +<link rel=\"stylesheet\" type=\"text/css\" href=\"%s\">\ +<title>%s</title>\ +</head>\ +<body>", ARGV[2], ARGV[1] + + pre = 0 list = 0 } @@ -70,12 +70,13 @@ BEGIN { /\* / { # Detect if this is the first item in # the list. If so, start a new <ul>. - if(list == 0){ + if (list == 0) { list = 1 printf "<ul>" } sub(/\* [ \t]*/, "") + printf "<li>%s</li>", $0 next } @@ -89,6 +90,7 @@ BEGIN { # Detect heading 3 /^###/ { sub(/^#[#]*[ \t]*/, "") + printf "<h3>%s</h3>", $0 next } @@ -96,6 +98,7 @@ BEGIN { # Detect heading 2 /^##/ { sub(/^#[#]*[ \t]*/, "") + printf "<h2>%s</h2>", $0 next } @@ -103,6 +106,7 @@ BEGIN { # Detect heading 1 /^#/ { sub(/^#[#]*[ \t]*/, "") + printf "<h1>%s</h1>", $0 next } @@ -110,6 +114,7 @@ BEGIN { # Detect blockquote /^>/ { sub(/^>[ \t]*/, "") + printf "<blockquote><p>“%s”</p></blockquote>", $0 next } @@ -118,10 +123,10 @@ BEGIN { /^=>/ { sub(/^=>[ \t]*/, "") - url=$0 + url = $0 sub(/[ \t].*$/, "", url) - text=$0 + text = $0 sub(url, "", text) sub(/[ \t]*$/, "", text) sub(/^[ \t]*/, "", text) @@ -138,7 +143,7 @@ BEGIN { text = url } - printf "<p><code>=></code> <a href=\""url"\">%s</a></p>", text + printf "<p><code>=></code> <a href=\"%s\">%s</a></p>", url, text next } @@ -156,13 +161,14 @@ END { # Add a footer pointing back to the original Gemini site, # and advertising Gemini as a better protocol - printf "<hr>\ - <footer>\ - <small>\ - Also available on <a href=\"gemini://%s\">Gemini</a>\ - — a simpler, more secure World Wide Web.\ - </small>\ - </footer>\ - </body>\ - </html>", ARGV[3] + printf "\ +<hr>\ +<footer>\ +<small>\ +Also available on <a href=\"gemini://%s\">Gemini</a>\ +— a simpler, more secure World Wide Web.\ +</small>\ +</footer>\ +</body>\ +</html>", ARGV[3] } |