kisscommunity

kisscommunity.bvnf.space site sources
git clone git://bvnf.space/home/kiss/kisscommunity.git
Log | Files | Refs | Submodules | README | LICENSE

convert_links.awk (522B)


      1
      2
      3
      4
      5
      6
      7
      8
      9
     10
     11
     12
     13
     14
     15
     16
     17
     18
     19
     20
     21
     22
     23
     24
     25
     26
     27
     28
#!/usr/bin/awk -f
# Run this twice (awk -f convert_links.awk index.txt index.txt) to convert bibliography style links to inline links.

function esc(str,	 out, i, c) {
	out = ""
	for (i = 1; i <= length(str); i++) {
		c = substr(str, i, 1)
		if (c ~ /[][(){}.^$*+?|\\]/)
			out = out "\\" c
		else
			out = out c
	}
	return out
}
NR==FNR && /^\[[0-9]*\]/ {
	w=$1;
	$1="";
	sub(/^ /, "");
	saved[w]=$0;
}
NR != FNR && $0 !~ /^\[[0-9]*\]/ {
	for (k in saved) {
		ek = esc(k)
		gsub(ek, "[" k "](" saved[k] ")")
	}
	print
}