#!/usr/bin/jperl5 ############################################################################ # Anchor adder and checker for "Josei list" # (http://www1.meshnet.or.jp/~vag/josei.html) # # Copyright (C) 1996 by Yasusi Kanada (kanada@st.rim.or.jp) # 1996-8-25 # # Notes: # o You can use/modify this program with no permission nor fee. # o You needs JPerl 5 (Japanese Perl 5) compiler to run this program. # o Original (not yet tagged) Josei list must be put in a directory # './orig' and the converted results will be put in a directory './josei'. ############################################################################ ### convert_list($file, $indir, $outdir) # Add definition anchors to a Josei list part. # sub convert_list { my ($file, $indir, $outdir) = @_; my $count = 0; print STDERR "$indir/$file > $outdir/$file\n"; open(INFILE, "$indir/$file"); open(OUTFILE, '| nkf -s >' . "$outdir/$file"); while () { if ( s|¡Ú(.*)¡Û|¡Ú$1¡Û| ) { $links{$1} = "${file}#${count}"; $count++; }; print OUTFILE $_; }; close INFILE; close OUTFILE; } ### convert_index($file, $indir, $outdir) # Add reference anchors to the Josei list index. # sub convert_index { my ($file, $indir, $outdir) = @_; print STDERR "$indir/$file > $outdir/$file\n"; open(INFILE, "$indir/$file"); open(OUTFILE, '| nkf -s >' . "$outdir/$file"); while () { if ( s|^¡ü(\S*)(\s)|¡ü$1$2| ) { $links{$1} = ''; }; print OUTFILE $_; }; close INFILE; close OUTFILE; } ### print_unused() # Print out unreferenced definitions. # sub print_unused { foreach (sort keys %links) { if ($links{$_} ne '') { print STDERR $_, "\n"; }; }; } ### Main program ### %links = {}; convert_list("list-a.html", "orig", "josei"); convert_list("list-ka.html", "orig", "josei"); convert_list("list-sa.html", "orig", "josei"); convert_list("list-ta.html", "orig", "josei"); convert_list("list-na.html", "orig", "josei"); convert_list("list-ha.html", "orig", "josei"); convert_list("list-ma.html", "orig", "josei"); convert_index("index.html", "orig", "josei"); print_unused(); 1;