--- trunk2/all2all.pl 2004/09/12 01:25:55 426
+++ trunk2/all2all.pl 2004/09/13 15:32:55 437
@@ -9,17 +9,35 @@
use strict;
use Data::Dumper;
use Carp;
+use Getopt::Long;
use lib './lib';
use WebPAC;
use WebPAC::jsFind;
use WebPAC::Index;
+# options which can be changed via command line
+#
+my $code_page = 'ISO-8859-2';
+my ($limit_mfn, $start_mfn, $debug, $low_mem);
+my $index_path = './out/index';
+
+my $result = GetOptions(
+ "code_page=s" => \$code_page,
+ "limit_mfn=i" => \$limit_mfn,
+ "start_mfn=i" => \$start_mfn,
+ "debug!" => \$debug,
+ "low_mem!" => \$low_mem,
+);
+
+# create WebPAC object
+#
my $webpac = new WebPAC(
- code_page => 'ISO-8859-2',
- limit_mfn => 500,
-# debug => 1,
-# low_mem => 1,
+ code_page => $code_page,
+ limit_mfn => $limit_mfn,
+ start_mfn => $start_mfn,
+ debug => $debug,
+ low_mem => $low_mem,
) || die;
my $log = $webpac->_get_logger() || die "can't get logger";
@@ -27,7 +45,7 @@
$log->debug("creating WebPAC::jsFind object");
my $index = new WebPAC::jsFind(
- index_path => './out/index',
+ index_path => $index_path,
keys => 10,
) || die;
@@ -150,13 +168,17 @@
} # XXX if(0)
-$log->info("lookup hash: ",Dumper($webpac->{'lookup'}));
+$log->debug("lookup hash: ",Dumper($webpac->{'lookup'}));
#
# tree dump implementation which shouldn't be here :-)
#
+
my $file = 'out/browse.html';
+my $js_url = 'tree-ids.js';
+
+$log->info("creating '$file' for tree html");
open(HTML, "> $file") || $log->logdie("can't open '$file'");
print HTML qq{
@@ -165,8 +187,34 @@
Browse
+
+
+
+
+
+ search |
+ thesarus |
+ browse
+
+
+
+
};
@@ -229,12 +277,67 @@
},
lookup_term => sub { shift @{$l->{"d:".$_[0]}} },
lookup_mfn => sub { shift @{$l->{"900_mfn:".$_[0]}} },
+ have_children => sub { defined($l->{$_[1]}) },
+ child_code => sub { return $_[1] },
+ },{
+ # 5
+ code_arr => sub { @{$l->{$_[0]}} },
+ filter_code => sub { shift },
+ lookup_v900 => sub {
+ my ($c,$p) = @_;
+ $p =~ s/^a:(..:....):.*$/$1/;
+ return "a:".$p.":".$c;
+ },
+ lookup_term => sub { shift @{$l->{"d:".$_[0]}} },
+ lookup_mfn => sub { shift @{$l->{"900_mfn:".$_[0]}} },
+ have_children => sub { defined($l->{$_[1]}) },
+ child_code => sub { return $_[1] },
+ },{
+ # 6
+ code_arr => sub { @{$l->{$_[0]}} },
+ filter_code => sub { shift },
+ lookup_v900 => sub {
+ my ($c,$p) = @_;
+ $p =~ s/^a:(..:....):.*$/$1/;
+ return "a:".$p.":".$c;
+ },
+ lookup_term => sub { shift @{$l->{"d:".$_[0]}} },
+ lookup_mfn => sub { shift @{$l->{"900_mfn:".$_[0]}} },
+ have_children => sub { defined($l->{$_[1]}) },
+ child_code => sub { return $_[1] },
+ },{
+ # 7
+ code_arr => sub { @{$l->{$_[0]}} },
+ filter_code => sub { shift },
+ lookup_v900 => sub {
+ my ($c,$p) = @_;
+ $p =~ s/^a:(..:....):.*$/$1/;
+ return "a:".$p.":".$c;
+ },
+ lookup_term => sub { shift @{$l->{"d:".$_[0]}} },
+ lookup_mfn => sub { shift @{$l->{"900_mfn:".$_[0]}} },
+ have_children => sub { defined($l->{$_[1]}) },
+ child_code => sub { return $_[1] },
+ },{
+ # 8
+ code_arr => sub { @{$l->{$_[0]}} },
+ filter_code => sub { shift },
+ lookup_v900 => sub {
+ my ($c,$p) = @_;
+ $p =~ s/^a:(..:....):.*$/$1/;
+ return "a:".$p.":".$c;
+ },
+ lookup_term => sub { shift @{$l->{"d:".$_[0]}} },
+ lookup_mfn => sub { shift @{$l->{"900_mfn:".$_[0]}} },
# have_children => sub { defined($l->{$_[1]}) },
# child_code => sub { return $_[1] },
have_children => sub { 0 },
child_code => sub { 0 },
});
+my @show_ids;
+my @hide_ids;
+
unroll(0,'');
$log->debug("test filter: ",$tree[0]->{'filter_code'}->("root:99"));
@@ -270,13 +373,11 @@
my $have_children = $tree[$level]->{'have_children'}->($code,$v900,$start_code);
if ($have_children) {
- ($link_start,$link_end) = (qq{},qq{});
+ ($link_start,$link_end) = (qq{},qq{});
} else {
$log->debug("# $level doesn't have_children($code,$v900,$start_code)");
}
- $log->debug("# $level children re-check failed", sub { Dumper($tree[$level]->{'have_children'}->($code,$v900,$start_code)) }) if (defined($l->{$v900}) && ! $tree[$level]->{'have_children'}->($code,$v900,$start_code));
-
my $mfn_link = "thes/$mfn.html";
if (-e "out/$mfn_link") {
print HTML " " x $level .
@@ -289,12 +390,24 @@
unless ($have_children) {
next;
}
-
+ my $style = $tree[$level]->{'style'};
+
print HTML " " x $level .
- qq{\n {'style'} ? ' style="'.$tree[$level]->{'style'}.'"' : '').
+ qq{\n \n};
+ if ($style) {
+ if ($style =~ m/display\s*:\s*none/i) {
+ push @hide_ids, "id$mfn";
+ } else {
+ push @show_ids, "id$mfn";
+ }
+ } else {
+ # default: show
+ push @show_ids, "id$mfn";
+ }
+
unroll($level+1, $tree[$level]->{'child_code'}->($code,$v900,$start_code));
print HTML " " x $level . qq{
\n};
@@ -311,6 +424,15 @@
close(HTML);
+
+my $js_file = "out/$js_url";
+$log->info("creating '$js_file' with arrays of shown and hidden ids");
+open(JS, ">", $js_file) || $log->logdie("can't open '$js_file': $!");
+print JS "var show = ['",join("','",@show_ids),"'];\n";
+print JS "var hide = ['",join("','",@hide_ids),"'];\n";
+close(JS);
+
+$log->info("closing index");
$index->close;
$log->info("elapsed time: ",$webpac->fmt_time(time() - $webpac->{'start_t'}));