#!/usr/bin/perl $filename = $ARGV[0]; $filename =~ /^(.*)\.([^.]*)$/; $basename = $1; $extension = $2; print "Processing $filename...\n"; $head = ""; open(fi, "<$filename"); while() { last if(/snip:chapter/); $head .= $_; } # chapters my $nr=1; my @chapters; my @names; /!!!"(.*)"!!!/;$name = $1; while() { my $chapter = ""; # one chapter while(1) { if(/snip:\/chapter/) { while() { last if(!/^\s*$/); } last; } $chapter .= $_; $_ = ; } $names[$nr] = $name; $chapters[$nr++] = $chapter; /!!!"(.*)"!!!/;$name = $1; if(!/snip:chapter/) { last; } } while($_) { $tail .= $_; $_ = ; } close(fi); my $num = $nr; $nr=1; for($nr=1;$nr<$num;$nr++) { $h2 = $head; $t2 = $tail; my $filename = "$basename.$nr.$extension"; print "Creating $filename...\n"; for($n=1;$n<$num;$n++) { if($nr == $n) { $h2 =~ s/chapterlink$n/>$names[$n]<<\/a>/; } else { $h2 =~ s/chapterlink$n/$names[$n]<\/a>/; } } if($nr > 1) { $prev = $names[$nr-1]; $aprev = $basename.".".($nr-1).".".$extension; $t2 =~ s/__prevlink__/Previous: $prev<\/a>/; } else { $t2 =~ s/__prevlink__/ /; } if($nr < $num-1) { $next= $names[$nr+1]; $anext = $basename.".".($nr+1).".".$extension; $t2 =~ s/__nextlink__/Next: $next<\/a>/; } else { $t2 =~ s/__nextlink__/ /; } $t2 =~ s/__currentchapter__/$names[$nr]/; open(fi, ">$filename"); print fi "$h2\n$chapters[$nr]\n$t2"; close(fi); }