diff options
| author | la ninpre <aaoth@aaoth.xyz> | 2025-12-04 16:23:10 +0300 |
|---|---|---|
| committer | la-ninpre <aaoth@aaoth.xyz> | 2025-12-04 16:28:52 +0300 |
| commit | d6185c275b1d83d30db413ec0c259503512b105f (patch) | |
| tree | 51e14bdfddf33fdf90771973fc708fa6723b0932 /lib | |
| parent | 8d169d142b6f063895555bd24b5db6390976b956 (diff) | |
| download | aaothxyz-decadv-d6185c275b1d83d30db413ec0c259503512b105f.tar.gz aaothxyz-decadv-d6185c275b1d83d30db413ec0c259503512b105f.zip | |
day 04: add scripts to find incoming links
i said no automation, but this is somewhat innocent, i guess?
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/inc.awk | 43 |
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; + } +} |
