summaryrefslogtreecommitdiffstats
path: root/lib/inc.awk
diff options
context:
space:
mode:
Diffstat (limited to 'lib/inc.awk')
-rw-r--r--lib/inc.awk43
1 files changed, 43 insertions, 0 deletions
diff --git a/lib/inc.awk b/lib/inc.awk
new file mode 100644
index 0000000..b6978bc
--- /dev/null
+++ b/lib/inc.awk
@@ -0,0 +1,43 @@
+# usage: awk -f inc.awk *.html
+
+function nodot(name) {
+ if(name ~ /^\.\//){
+ name=substr(name,3);
+ }
+ return name;
+}
+
+BEGIN {
+ for(i=1;i<ARGC;i++){
+ files[nodot(ARGV[i])] = 1;
+ }
+}
+
+/<title>/ {
+ match($0, /<title>.*<\/title>/);
+ t=substr($0,RSTART+7,RLENGTH-7-8);
+ match(t, / — /);
+ title[nodot(FILENAME)]=substr(t,1,RSTART-1);
+}
+
+/<a href=/ {
+ if(match($0, /<a href="[a-zA-Z0-9].*\.html">/)){
+ l=substr($0,RSTART+9,RLENGTH-9-2);
+ incoming[l][nodot(FILENAME)]=1;
+ if(!(l in files)) {
+ printf("warning: redlink '%s' in '%s'\n", l, nodot(FILENAME));
+ }
+ }
+}
+
+END {
+ for(f in incoming){
+ split(f,fbase,".");
+ fname=fbase[1] "-inc.htm";
+ print "<ul>" > fname;
+ for(l in incoming[f]) {
+ printf("\t<li><a href=\"%s\">%s</a></li>\n",l,title[l]) >> fname;
+ }
+ printf "</ul>\n" >> fname;
+ }
+}