]>
pere.pagekite.me Git - text-free-culture-lessig.git/blob - scripts/sisu2dbindex
7 my $filename = shift || 'free_culture.lawrence_lessig.sst';
9 open(my $fh, '<', $filename) || die;
16 while (my $line = <$fh>) {
18 last if ($line =~ m/^}group/);
22 my @entries = split(/;/, $1);
23 for my $entry (@entries) {
24 my @ends = dbentry
($entry);
25 push(@ranges, @ends) if @ends;
28 if ($lastline =~ m/^$/) {
32 if (0 >= $r->{'paracount'}) {
34 print "<indexterm startref='$idx' class='endofrange'/>\n";
43 my $startofline = substr($_, 0, 60);
45 print ($startofline,"\n") if ($printpara);
52 $entry =~ s/&/&/g;
53 if ($entry =~ m/^(.+)\+(\d+)$/) {
57 my $block = "<primary>$entry</primary>";
60 my ($primary, $secondary) = split(/:/, $entry);
61 if ($secondary =~ m/\|/) {
62 my @seclist = split(/\|/, $secondary);
63 $secondary = pop @seclist;
64 for my $s (@seclist) {
65 push(@ranges, dbentry
("$primary:$s"));
68 $block = "<primary>$primary</primary><secondary>$secondary</secondary>"
80 while (exists $usedid{$idx}) {
82 $idx = "idx$id$count";
85 print "<indexterm id='$idx' class='startofrange'>$block</indexterm>\n";
86 # print "<indexterm startref='$idx+$isrange' class='endofrange'/>\n";
87 push(@ranges, {'paracount' => $isrange+1, 'id' => $idx});
89 print "<indexterm>$block</indexterm>\n";