all repos — aaothxyz-decadv @ 8bc62e51ad5d2c2b426144a69fdaf2353a018738

aaoth.xyz website, but new.

lib/inc.awk (view raw)

 1# usage: awk -f inc.awk *.html
 2
 3function nodot(name) {
 4	if(name ~ /^\.\//){
 5		name=substr(name,3);
 6	}
 7	return name;
 8}
 9
10BEGIN {
11	for(i=1;i<ARGC;i++){
12		files[nodot(ARGV[i])] = 1;
13	}
14}
15
16/<title>/ {
17	match($0, /<title>.*<\/title>/);
18	t=substr($0,RSTART+7,RLENGTH-7-8);
19	match(t, / — /);
20	title[nodot(FILENAME)]=substr(t,1,RSTART-1);
21}
22
23/<a href=/ {
24	if(match($0, /<a href="[a-zA-Z0-9].*\.html">/)){
25		l=substr($0,RSTART+9,RLENGTH-9-2);
26		incoming[l,nodot(FILENAME)]=1;
27		if(!(l in files)) {
28			printf("warning: redlink '%s' in '%s'\n", l, nodot(FILENAME));
29		}
30	}
31}
32
33END {
34	for(kv in incoming){
35		split(kv,f,SUBSEP);
36		split(f[1],fbase,".");
37		fname=fbase[1] "-inc.htm";
38		if(lastname!=fname){
39			if(lastname!=""){
40				printf "</ul>\n" >> lastname;
41			}
42			lastname=fname;
43			print "<ul>" > fname;
44		}
45		printf("\t<li><a href=\"%s\">%s</a></li>\n",f[2],title[f[2]]) >> fname;
46	}
47	printf "</ul>\n" >> lastname;
48}