do not edit — generated by btf.
git.druid.rocksindexdruid520btftxt2btf.sh

txt2btf.sh


#!/bin/sh
# txt2btf - convert plaintext pages to btf markup. usage: txt2btf [file] > out.btft
set -e
 
AWK='
function linkify(line,    out, rest, p1, p2, p, i, c, url, tail) {
	out = ""
	rest = line
	for (;;) {
		p1 = index(rest, "http://")
		p2 = index(rest, "https://")
		if (p1 == 0 && p2 == 0) { break }
		if (p1 == 0) { p = p2 }
		else if (p2 == 0) { p = p1 }
		else if (p1 < p2) { p = p1 }
		else { p = p2 }
		out = out substr(rest, 1, p - 1)
		rest = substr(rest, p)
		url = ""
		i = 1
		while (i <= length(rest)) {
			c = substr(rest, i, 1)
			if (c == " " || c == "\t") { break }
			url = url c
			i = i + 1
		}
		tail = ""
		for (;;) {
			if (length(url) == 0) { break }
			c = substr(url, length(url), 1)
			if (c == "." || c == "," || c == ";" || c == ":") {
				tail = c tail
				url = substr(url, 1, length(url) - 1)
			} else if (c == "!" || c == "?" || c == ")") {
				tail = c tail
				url = substr(url, 1, length(url) - 1)
			} else { break }
		}
		out = out "[url=\"" url "\"]" url "[e]" tail
		rest = substr(rest, i)
	}
	return out rest
}
 
{
	line = $0
	gsub(/\\/, "\\\\&", line)
	gsub(/\[/, "\\[", line)
	line = linkify(line)
	if (line ~ /^[ \t]*$/) {
		cur = 0
	} else {
		cur = 1
	}
	if (prev != 0 && cur != 0) { print "[br]" }
	print line
	prev = cur
}
'
 
exec awk "$AWK" ${@+"$@"}
powered by btf.