code: plan9front

ref: 88a8ca5c8de86f1f3e5b43a490e0e70c6b456072
dir: /sys/lib/man/mkhtmlindex/

View raw version
#!/bin/rc
builtin cd $1
echo '<HEAD>'
echo '<TITLE>plan 9 man section '$1'</TITLE>'
echo '</HEAD>'
echo '<BODY>'
echo '<B>[<A HREF="/sys/man/index.html">manual index</A>]</B>'
echo -n '<H2>Plan 9 from Bell Labs - Section '$1' - '
switch($1){
case 1
	echo -n Commands
case 2
	echo -n System and Library Calls
case 3
	echo -n Devices
case 4
	echo -n File Servers
case 5
	echo -n Plan 9 File Protocol, 9P
case 6
	echo -n File Formats, Misc
case 7
	echo -n Databases
case 8
	echo -n System Administration
}
echo '</H2>'
echo '<HR>'
echo '<DL>'
for (i in [a-z0-9:]*) {
	switch($1/$i){
	case 1/ap 1/aviation 1/distill 1/dup 1/games 1/lml 1/noweb 1/pac
	case 2/button 2/fmenu 2/ftree
	case 6/noweb
	case 7/audio 7/chdb 7/music 7/road
		;
 	case *
		echo '<DT><A HREF="/magic/man2html/'$1/$i'">'$i'</A>'
		awk '
		BEGIN { syms = ""; indesc = 0; desc = ""; }
		/.SH *NAME/,/.SH *(DES|SYN)/ {
			if($1 != "\.SH"){
				if($1 ~ /^\..*/)
					i = 2;
				else
					i = 1;
				for(; i <= NF; i++){
					if(indesc){
						desc = desc " " $i;
					} else if($i ~ /^\\?-.*/) {
						indesc = 1;
					} else {
						syms = syms " " $i;
					}
				}
			}
		}
		END { print "- " desc; print "<DD><TT>" syms "</TT>"}
		' $i
		echo '</DT>'
	}
}
echo '</DL>'