SMOLNET PORTAL home about changes
iinitial import - tttml - converters for a simpler syntax than markdown	Err	bitreich.org	70
hgit clone git://bitreich.org/tttml git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/tttml	URL:git://bitreich.org/tttml git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/tttml	bitreich.org	70
1Log	/scm/tttml/log.gph	bitreich.org	70
1Files	/scm/tttml/files.gph	bitreich.org	70
1Refs	/scm/tttml/refs.gph	bitreich.org	70
1Tags	/scm/tttml/tag	bitreich.org	70
1README	/scm/tttml/file/README.gph	bitreich.org	70
i---	Err	bitreich.org	70
1commit 90cc0673d34514966f93faff6c62c79babc8faf0	/scm/tttml/commit/90cc0673d34514966f93faff6c62c79babc8faf0.gph	bitreich.org	70
hAuthor: Josuah Demangeon <mail@josuah.net>	URL:mailto:mail@josuah.net	bitreich.org	70
iDate:   Thu, 19 Apr 2018 02:04:43 +0200	Err	bitreich.org	70
i	Err	bitreich.org	70
iinitial import	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  A markup-fmt                          |     136 +++++++++++++++++++++++++++++++	Err	bitreich.org	70
i  A markup-gopher                       |      62 +++++++++++++++++++++++++++++++	Err	bitreich.org	70
i  A markup-html                         |     145 +++++++++++++++++++++++++++++++	Err	bitreich.org	70
i	Err	bitreich.org	70
i3 files changed, 343 insertions(+), 0 deletions(-)	Err	bitreich.org	70
i---	Err	bitreich.org	70
1diff --git a/markup-fmt b/markup-fmt	/scm/tttml/file/markup-fmt.gph	bitreich.org	70
i@@ -0,0 +1,136 @@	Err	bitreich.org	70
i+#!/usr/bin/awk -f	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+function fold(blk, first, prefix)	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        len = length(prefix);	Err	bitreich.org	70
i+        gsub("\t", " ", blk);	Err	bitreich.org	70
i+        gsub(" +", " ", blk);	Err	bitreich.org	70
i+        gsub("\\*+", "*", blk); gsub("_+", "_", blk); gsub("/+", "/", blk);	Err	bitreich.org	70
i+        sub("^ *", "", blk); sub(" *$", "", blk);	Err	bitreich.org	70
i+        gsub("[.!?] ", "& ", blk);	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        if (match(blk, /^[0-9.]+  /))	Err	bitreich.org	70
i+                blk = substr(blk, RMATCH, RLENGTH - 1) substr(blk, RLENGTH + 1);	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        for (p = first; (line = substr(blk, 1, 80 - len)) != ""; p = prefix) {	Err	bitreich.org	70
i+                if (length(line) == 80 - len)	Err	bitreich.org	70
i+                        sub(" +[^ ]*$", "", line);	Err	bitreich.org	70
i+                print(p line);	Err	bitreich.org	70
i+                blk = substr(blk, length(line) + 1);	Err	bitreich.org	70
i+                sub("^ *", "", blk);	Err	bitreich.org	70
i+        }	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+function tag(blk)	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        match(blk, /^\*[^*]*\*:/);	Err	bitreich.org	70
i+        print(substr(blk, 1, RLENGTH));	Err	bitreich.org	70
i+        blk = substr(blk, RLENGTH + 1);	Err	bitreich.org	70
i+        fold(blk, "", "");	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+function link(blk)	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        match(blk, /^\[[^]]*\]: [^ \t]*/)	Err	bitreich.org	70
i+        print(substr(blk, 0, RLENGTH));	Err	bitreich.org	70
i+        fold(substr(blk, RLENGTH + 1), "", "");	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+function literal()	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        print("");	Err	bitreich.org	70
i+        do {	Err	bitreich.org	70
i+                print($0);	Err	bitreich.org	70
i+        } while (getline && match($0, /^\t/));	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+function title(blk)	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        fold(blk, "", "");	Err	bitreich.org	70
i+        half = "========================================";	Err	bitreich.org	70
i+        print(half half);	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+function heading(blk)	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        print("\n");	Err	bitreich.org	70
i+        fold(blk, "", "");	Err	bitreich.org	70
i+        half = "----------------------------------------";	Err	bitreich.org	70
i+        print(half half);	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+function subheading(str)	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        print("\n\n### " str);	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+function printblk(blk)	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        if (blk) print("");	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        if        (type == PARAGRAPH)        fold(blk, "",   "");	Err	bitreich.org	70
i+        else if (type == QUOTE)                fold(blk, "> ", "> ");	Err	bitreich.org	70
i+        else if (type == LIST)                fold(blk, "- ", "  ");	Err	bitreich.org	70
i+        else if (type == TAG)                tag(blk);	Err	bitreich.org	70
i+        else if (type == LINK)                link(blk);	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+BEGIN {	Err	bitreich.org	70
i+        PARAGRAPH = 1; QUOTE = 2; LIST = 3; TAG = 4; LINK = 5;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+#        print the        append line        set type or                skip append	Err	bitreich.org	70
i+#        last block        to current        print the                to block	Err	bitreich.org	70
i+#        right now        block or not        current block                (see the end)	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+/^[ \t]*$/ {	Err	bitreich.org	70
i+        printblk(blk);        blk = $0;        type = PARAGRAPH;        next;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+sub(/^[-*] /, "") {	Err	bitreich.org	70
i+        printblk(blk);        blk = $0;        type = LIST;                next;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+/^\[[^]]*\]: / {	Err	bitreich.org	70
i+        printblk(blk);        blk = $0;        type = LINK;                next;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+/^\*[^*]*\*:/ {	Err	bitreich.org	70
i+        printblk(blk);        blk = $0;        type = TAG;                next;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+sub(/^> */, "") {	Err	bitreich.org	70
i+                                        type = QUOTE;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+/^\t/ {	Err	bitreich.org	70
i+        printblk(blk);        blk = "";        literal();                next;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+sub(/^# +/, "") {	Err	bitreich.org	70
i+        printblk(blk);        blk = "";        title($0);                next;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+sub(/^## +/, "") {	Err	bitreich.org	70
i+        printblk(blk);        blk = "";        heading($0);                next;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+sub(/^###+ */, "") {	Err	bitreich.org	70
i+        printblk(blk);        blk = "";        subheading($0);                next;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+/^=+$/ {	Err	bitreich.org	70
i+        title(blk);        blk = "";                                next;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+/^-+$/ {	Err	bitreich.org	70
i+        heading(blk);        blk = "";                                next;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        blk = blk " " $0;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+END {	Err	bitreich.org	70
i+        printblk(blk);	Err	bitreich.org	70
i+}	Err	bitreich.org	70
1diff --git a/markup-gopher b/markup-gopher	/scm/tttml/file/markup-gopher.gph	bitreich.org	70
i@@ -0,0 +1,62 @@	Err	bitreich.org	70
i+#!/usr/bin/awk -f	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+# format plain text markdown-style document into browsable gophermap	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+# It recognises and convert the following patterns:	Err	bitreich.org	70
i+#	Err	bitreich.org	70
i+#        [tag]: proto://host:port/path	Err	bitreich.org	70
i+#        [tag]: proto://host/path	Err	bitreich.org	70
i+#        [tag]: gopher://host:port/t/path	Err	bitreich.org	70
i+#        [tag]: gopher://host/t/path	Err	bitreich.org	70
i+#        [tag]: //host/t/path	Err	bitreich.org	70
i+#        [tag]: /t/path	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+BEGIN {	Err	bitreich.org	70
i+        if (ARGC < 3 || 4 < ARGC) {	Err	bitreich.org	70
i+                print("usage: markup-gph <host> <port> [<file>]");	Err	bitreich.org	70
i+                exit(1);	Err	bitreich.org	70
i+        }	Err	bitreich.org	70
i+        HOST = ARGV[1];	Err	bitreich.org	70
i+        PORT = ARGV[2];	Err	bitreich.org	70
i+        ARGV[1] = ARGV[3];	Err	bitreich.org	70
i+        ARGC = 2;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+match($0, "^\\[[^]]*\\]: ") {	Err	bitreich.org	70
i+        host = HOST;        uri = substr($0, RLENGTH + 1);	Err	bitreich.org	70
i+        port = PORT;        tag = substr($0, 2, RLENGTH - 4);	Err	bitreich.org	70
i+        path = uri;        type = "0";	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        sub("^[ \t]*", "", path);	Err	bitreich.org	70
i+        if (match(path, "/$"))	Err	bitreich.org	70
i+                type = "1";	Err	bitreich.org	70
i+        else if (match(path, "^[01789aghI]/")) {	Err	bitreich.org	70
i+                type = substr(path, 1, 1);	Err	bitreich.org	70
i+                sub(".", "", path);	Err	bitreich.org	70
i+        }	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        if (sub("^gopher://&;, "", uri)) {	Err	bitreich.org	70
i+                host = uri; sub("/.*", "", host);	Err	bitreich.org	70
i+                path = uri; sub(".*/", "/", path);	Err	bitreich.org	70
i+                if (match(host, "[a-z.-]+:")) {	Err	bitreich.org	70
i+                        port = substr(host, RLENGTH + 1);	Err	bitreich.org	70
i+                        host = substr(host, RSTART, RLENGTH - 1);	Err	bitreich.org	70
i+                }	Err	bitreich.org	70
i+        } else if (match(uri, "^[a-z0-9-]+:")) {	Err	bitreich.org	70
i+                type = "h"; host = ""; port = "";	Err	bitreich.org	70
i+                path = "URL:" uri;	Err	bitreich.org	70
i+        }	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        for (name = ""; match($0, /[^ \t]/); name = name " " $0)	Err	bitreich.org	70
i+                if (!getline) { end = 1; break; }	Err	bitreich.org	70
i+        if (name == "" || name == " ") name = " " uri;	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        printf("%s%s:%s\t%s\t%s\t%s\n", type, tag, name, path, host, port);	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        if (end) exit;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        gsub("\t", "        ");	Err	bitreich.org	70
i+        printf("i%s\t\t\t\n", $0);	Err	bitreich.org	70
i+}	Err	bitreich.org	70
1diff --git a/markup-html b/markup-html	/scm/tttml/file/markup-html.gph	bitreich.org	70
i@@ -0,0 +1,145 @@	Err	bitreich.org	70
i+#!/usr/bin/awk -f	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+function esc(str)	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        gsub("&", "\\&amp;", str);	Err	bitreich.org	70
i+        gsub("<", "\\&lt;", str);	Err	bitreich.org	70
i+        gsub(">", "\\&gt;", str);	Err	bitreich.org	70
i+        gsub("\"", "\\&quot;", str);	Err	bitreich.org	70
i+        return str;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+function format(blk)	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        gsub("[*_]", "", blk);	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        for (out = ""; match(blk, /\[[^]]+\]/);) {	Err	bitreich.org	70
i+                out = out substr(blk, 1, RSTART - 1);	Err	bitreich.org	70
i+                label = substr(blk, RSTART + 1, RLENGTH - 2);	Err	bitreich.org	70
i+                out = out sprintf("<sup>[<a href=\"#%s\">%s</a>]</sup>", label, label);	Err	bitreich.org	70
i+                blk = substr(blk, RSTART + RLENGTH);	Err	bitreich.org	70
i+        }	Err	bitreich.org	70
i+        out = out blk;	Err	bitreich.org	70
i+        return out;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+function paragraph(blk)	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        if (blk)	Err	bitreich.org	70
i+                print("<p>" format(esc(blk)) "</p>");	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+function title(blk)	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        print("\n<h1>" esc(blk) "</h1>\n");	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+function heading(blk)	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        print("\n<h2>" esc(blk) "</h2>\n");	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+function subheading(str)	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        print("\n<h3>" esc(str) "</h3>\n");	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+function tag(blk)	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        print("");	Err	bitreich.org	70
i+        match(blk, /^\*[^*]*\*:/);	Err	bitreich.org	70
i+        print("<dt>" esc(substr(blk, 1, RLENGTH)) "</dt>");	Err	bitreich.org	70
i+        print("<dd>" esc(substr(blk, RLENGTH + 1)) "</dd>");	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+function link(blk)	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        match(blk, /^\[[^]]*\]:/);	Err	bitreich.org	70
i+        label = esc(substr(blk, RSTART + 1, RLENGTH - 3));	Err	bitreich.org	70
i+        blk = substr(blk, RLENGTH + 1);	Err	bitreich.org	70
i+        match(blk, /[^ \t]+/);	Err	bitreich.org	70
i+        printf("<p id=\"%s\">%s: <a href=\"%s\">%s</a></p>\n",	Err	bitreich.org	70
i+                esc(label),	Err	bitreich.org	70
i+                esc(label),	Err	bitreich.org	70
i+                esc(substr(blk, RSTART, RLENGTH + 1)),	Err	bitreich.org	70
i+                esc(substr(blk, RSTART + RLENGTH)));	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+function literal()	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        print("<pre>");	Err	bitreich.org	70
i+        sub(/^\t/, "", $0);	Err	bitreich.org	70
i+        do {	Err	bitreich.org	70
i+                print(esc($0));	Err	bitreich.org	70
i+        } while (getline && sub(/^\t/, "", $0));	Err	bitreich.org	70
i+        print("</pre>");	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+function printblk(blk)	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        if        (type == PARAGRAPH)        paragraph(blk);	Err	bitreich.org	70
i+        else if (type == QUOTE)                quote(blk, "> ", "> ");	Err	bitreich.org	70
i+        else if (type == LIST)                list(blk, "- ", "  ");	Err	bitreich.org	70
i+        else if (type == TAG)                tag(blk);	Err	bitreich.org	70
i+        else if (type == LINK)                link(blk);	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+BEGIN {	Err	bitreich.org	70
i+        PARAGRAPH = 1; QUOTE = 2; LIST = 3; TAG = 4; LINK = 5;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+#        print the        append line        set type or                skip append	Err	bitreich.org	70
i+#        last block        to current        print the                to block	Err	bitreich.org	70
i+#        right now        block or not        current block                (see the end)	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+/^[ \t]*$/ {	Err	bitreich.org	70
i+        printblk(blk);        blk = $0;        type = PARAGRAPH;        next;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+sub(/^[-*] /, "") {	Err	bitreich.org	70
i+        printblk(blk);        blk = $0;        type = LIST;                next;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+/^\[[^]]*\]:/ {	Err	bitreich.org	70
i+        printblk(blk);        blk = $0;        type = LINK;                next;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+/^\*[^*]*\*:/ {	Err	bitreich.org	70
i+        printblk(blk);        blk = $0;        type = TAG;                next;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+sub(/^> */, "") {	Err	bitreich.org	70
i+                                        type = QUOTE;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+/^\t/ {	Err	bitreich.org	70
i+        printblk(blk);        blk = "";        literal();                next;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+sub(/^# +/, "") {	Err	bitreich.org	70
i+        printblk(blk);        blk = "";        title($0);                next;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+sub(/^## +/, "") {	Err	bitreich.org	70
i+        printblk(blk);        blk = "";        heading($0);                next;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+sub(/^###+ */, "") {	Err	bitreich.org	70
i+        printblk(blk);        blk = "";        subheading($0);                next;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+/^=+$/ {	Err	bitreich.org	70
i+        title(blk);        blk = "";                                next;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+/^-+$/ {	Err	bitreich.org	70
i+        heading(blk);        blk = "";                                next;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        blk = blk " " $0;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+END {	Err	bitreich.org	70
i+        printblk(blk);	Err	bitreich.org	70
i+}	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/tttml/commit/90cc0673d3451496...
Content-Typetext/plain; charset=utf-8