summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Palfrader <peter@palfrader.org>2002-12-03 02:59:13 +0000
committerPeter Palfrader <peter@palfrader.org>2002-12-03 02:59:13 +0000
commitb025be7b869c06a774c09c92170c060bd9e1b179 (patch)
tree3cad523b5adcd6c22243ecb1724873a7ec6e44f7
parenta5a75de615b8e131c4be7f3f12c2b293fa997ae3 (diff)
Have support for translated templates
Use CSS - they need to be trimmed, I don't like Sergiusz's colors thesaurusindexfile and indexfilebasename config values should not longer have the extension (.html) in them
-rw-r--r--Echolot/Config.pm36
-rw-r--r--Echolot/Stats.pm74
-rw-r--r--Echolot/Thesaurus.pm4
-rw-r--r--Echolot/Tools.pm68
-rw-r--r--NEWS7
-rw-r--r--doc/pingd.conf.pod50
-rw-r--r--templates/clist.html3
-rw-r--r--templates/echolot.html3
-rw-r--r--templates/mlist.html3
-rw-r--r--templates/mlist2.html3
-rw-r--r--templates/rlist-clear.html3
-rw-r--r--templates/rlist-dsa.html3
-rw-r--r--templates/rlist-rsa.html3
-rw-r--r--templates/rlist.html3
-rw-r--r--templates/rlist2-clear.html3
-rw-r--r--templates/rlist2-dsa.html3
-rw-r--r--templates/rlist2-rsa.html3
-rw-r--r--templates/rlist2.html3
-rw-r--r--templates/thesaurusindex.html3
19 files changed, 175 insertions, 103 deletions
diff --git a/Echolot/Config.pm b/Echolot/Config.pm
index dcb48f4..a2cc755 100644
--- a/Echolot/Config.pm
+++ b/Echolot/Config.pm
@@ -1,7 +1,7 @@
package Echolot::Config;
# (c) 2002 Peter Palfrader <peter@palfrader.org>
-# $Id: Config.pm,v 1.42 2002/10/25 10:46:52 weasel Exp $
+# $Id: Config.pm,v 1.43 2002/12/03 02:59:13 weasel Exp $
#
=pod
@@ -112,9 +112,9 @@ sub init($) {
mailerrordir => 'mail-errors',
resultdir => 'results',
thesaurusdir => 'results/thesaurus',
- thesaurusindexfile => 'results/thesaurus/index.html',
+ thesaurusindexfile => 'results/thesaurus/index',
private_resultdir => 'results.private',
- indexfilebasename => 'echolot.html',
+ indexfilebasename => 'echolot',
gnupghome => 'gnupghome',
gnupg => '',
mixhome => 'mixhome',
@@ -148,21 +148,25 @@ sub init($) {
# templates
templates => {
- 'indexfile' => 'templates/echolot.html',
- 'thesaurusindexfile' => 'templates/thesaurusindex.html',
- 'mlist' => 'templates/mlist.html',
- 'mlist2' => 'templates/mlist2.html',
- 'rlist' => 'templates/rlist.html',
- 'rlist-rsa' => 'templates/rlist-rsa.html',
- 'rlist-dsa' => 'templates/rlist-dsa.html',
- 'rlist-clear' => 'templates/rlist-clear.html',
- 'rlist2' => 'templates/rlist2.html',
- 'rlist2-rsa' => 'templates/rlist2-rsa.html',
- 'rlist2-dsa' => 'templates/rlist2-dsa.html',
- 'rlist2-clear' => 'templates/rlist2-clear.html',
- 'clist' => 'templates/clist.html',
+ default => {
+ 'indexfile' => 'templates/echolot.html',
+ 'thesaurusindexfile' => 'templates/thesaurusindex.html',
+ 'mlist' => 'templates/mlist.html',
+ 'mlist2' => 'templates/mlist2.html',
+ 'rlist' => 'templates/rlist.html',
+ 'rlist-rsa' => 'templates/rlist-rsa.html',
+ 'rlist-dsa' => 'templates/rlist-dsa.html',
+ 'rlist-clear' => 'templates/rlist-clear.html',
+ 'rlist2' => 'templates/rlist2.html',
+ 'rlist2-rsa' => 'templates/rlist2-rsa.html',
+ 'rlist2-dsa' => 'templates/rlist2-dsa.html',
+ 'rlist2-clear' => 'templates/rlist2-clear.html',
+ 'clist' => 'templates/clist.html',
+ },
},
+ 'echolot_css' => 'templates/echolot.css',
+
remailerxxxtext => "Hello,\n".
"\n".
"This message requests remailer configuration data. The pinging software thinks\n".
diff --git a/Echolot/Stats.pm b/Echolot/Stats.pm
index 693aca3..ea682f5 100644
--- a/Echolot/Stats.pm
+++ b/Echolot/Stats.pm
@@ -1,7 +1,7 @@
package Echolot::Stats;
# (c) 2002 Peter Palfrader <peter@palfrader.org>
-# $Id: Stats.pm,v 1.34 2002/09/12 15:41:49 weasel Exp $
+# $Id: Stats.pm,v 1.35 2002/12/03 02:59:13 weasel Exp $
#
=pod
@@ -289,7 +289,7 @@ sub write_file($$$$) {
$output =~ s/</&lt;/g;
$output =~ s/>/&gt;/g;
};
- Echolot::Tools::write_HTML_file($filebasename.'.html', $html_template, $expires, list => $output);
+ Echolot::Tools::write_HTML_file($filebasename, $html_template, $expires, list => $output);
return 1;
};
@@ -489,10 +489,10 @@ sub build_lists() {
$rems = build_rems(['mix']);
@$pubrems = grep { $_->{'showit'} } @$rems;
- build_mlist1( $rems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'private_resultdir'}.'/'.'mlist');
- build_list2( $rems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'private_resultdir'}.'/'.'mlist2');
- build_mlist1( $pubrems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'resultdir'}.'/'.'mlist', Echolot::Config::get()->{'templates'}->{'mlist'});
- build_list2( $pubrems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'resultdir'}.'/'.'mlist2', Echolot::Config::get()->{'templates'}->{'mlist2'});
+ build_mlist1( $rems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'private_resultdir'}.'/'.'mlist', 'mlist');
+ build_list2( $rems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'private_resultdir'}.'/'.'mlist2', 'mlist2');
+ build_mlist1( $pubrems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'resultdir'}.'/'.'mlist', 'mlist');
+ build_list2( $pubrems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'resultdir'}.'/'.'mlist2', 'mlist2');
$stats{'mix_total'} = scalar @$pubrems;
$stats{'mix_98'} = scalar grep { $_->{'stats'}->{'avr_reliability'} >= 0.98 } @$pubrems;
$addresses{$_->{'address'}}=1 for @$pubrems;
@@ -503,10 +503,10 @@ sub build_lists() {
$rems = build_rems(['cpunk-rsa', 'cpunk-dsa', 'cpunk-clear']);
@$pubrems = grep { $_->{'showit'} } @$rems;
- build_rlist1( $rems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'private_resultdir'}.'/'.'rlist');
- build_list2( $rems,$broken1, $broken2, $sameop, Echolot::Config::get()->{'private_resultdir'}.'/'.'rlist2');
- build_rlist1( $pubrems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'resultdir'}.'/'.'rlist', Echolot::Config::get()->{'templates'}->{'rlist'});
- build_list2( $pubrems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'resultdir'}.'/'.'rlist2', Echolot::Config::get()->{'templates'}->{'rlist2'});
+ build_rlist1( $rems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'private_resultdir'}.'/'.'rlist', 'rlist');
+ build_list2( $rems,$broken1, $broken2, $sameop, Echolot::Config::get()->{'private_resultdir'}.'/'.'rlist2', 'rlist2');
+ build_rlist1( $pubrems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'resultdir'}.'/'.'rlist', 'rlist');
+ build_list2( $pubrems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'resultdir'}.'/'.'rlist2', 'rlist2');
$stats{'cpunk_total'} = scalar @$pubrems;
$stats{'cpunk_98'} = scalar grep { $_->{'stats'}->{'avr_reliability'} >= 0.98 } @$pubrems;
$addresses{$_->{'address'}}=1 for @$pubrems;
@@ -518,10 +518,10 @@ sub build_lists() {
if (Echolot::Config::get()->{'separate_rlists'}) {
$rems = build_rems(['cpunk-rsa']);
@$pubrems = grep { $_->{'showit'} } @$rems;
- build_rlist1( $rems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'private_resultdir'}.'/'.'rlist-rsa', Echolot::Config::get()->{'templates'}->{'rlist-rsa'});
- build_list2( $rems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'private_resultdir'}.'/'.'rlist2-rsa', Echolot::Config::get()->{'templates'}->{'rlist2-rsa'});
- build_rlist1( $pubrems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'resultdir'}.'/'.'rlist-rsa', Echolot::Config::get()->{'templates'}->{'rlist-rsa'});
- build_list2( $pubrems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'resultdir'}.'/'.'rlist2-rsa', Echolot::Config::get()->{'templates'}->{'rlist2-rsa'});
+ build_rlist1( $rems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'private_resultdir'}.'/'.'rlist-rsa', 'rlist-rsa');
+ build_list2( $rems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'private_resultdir'}.'/'.'rlist2-rsa', 'rlist2-rsa');
+ build_rlist1( $pubrems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'resultdir'}.'/'.'rlist-rsa', 'rlist-rsa');
+ build_list2( $pubrems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'resultdir'}.'/'.'rlist2-rsa', 'rlist2-rsa');
if (Echolot::Config::get()->{'combined_list'}) {
$clist->{'cpunk-rsa'} = $rems;
$pubclist->{'cpunk-rsa'} = $pubrems; $pubrems = undef;
@@ -529,10 +529,10 @@ sub build_lists() {
$rems = build_rems(['cpunk-dsa']);
@$pubrems = grep { $_->{'showit'} } @$rems;
- build_rlist1( $rems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'private_resultdir'}.'/'.'rlist-dsa', Echolot::Config::get()->{'templates'}->{'rlist-dsa'});
- build_list2( $rems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'private_resultdir'}.'/'.'rlist2-dsa', Echolot::Config::get()->{'templates'}->{'rlist2-dsa'});
- build_rlist1( $pubrems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'resultdir'}.'/'.'rlist-dsa', Echolot::Config::get()->{'templates'}->{'rlist-dsa'});
- build_list2( $pubrems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'resultdir'}.'/'.'rlist2-dsa', Echolot::Config::get()->{'templates'}->{'rlist2-dsa'});
+ build_rlist1( $rems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'private_resultdir'}.'/'.'rlist-dsa', 'rlist-dsa');
+ build_list2( $rems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'private_resultdir'}.'/'.'rlist2-dsa', 'rlist2-dsa');
+ build_rlist1( $pubrems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'resultdir'}.'/'.'rlist-dsa', 'rlist-dsa');
+ build_list2( $pubrems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'resultdir'}.'/'.'rlist2-dsa', 'rlist2-dsa');
if (Echolot::Config::get()->{'combined_list'}) {
$clist->{'cpunk-dsa'} = $rems;
$pubclist->{'cpunk-dsa'} = $pubrems; $pubrems = undef;
@@ -540,26 +540,50 @@ sub build_lists() {
$rems = build_rems(['cpunk-clear']);
@$pubrems = grep { $_->{'showit'} } @$rems;
- build_rlist1( $rems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'private_resultdir'}.'/'.'rlist-clear', Echolot::Config::get()->{'templates'}->{'rlist-clear'});
- build_list2( $rems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'private_resultdir'}.'/'.'rlist2-clear', Echolot::Config::get()->{'templates'}->{'rlist2-clear'});
- build_rlist1( $pubrems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'resultdir'}.'/'.'rlist-clear', Echolot::Config::get()->{'templates'}->{'rlist-clear'});
- build_list2( $pubrems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'resultdir'}.'/'.'rlist2-clear', Echolot::Config::get()->{'templates'}->{'rlist2-clear'});
+ build_rlist1( $rems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'private_resultdir'}.'/'.'rlist-clear', 'rlist-clear');
+ build_list2( $rems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'private_resultdir'}.'/'.'rlist2-clear', 'rlist2-clear');
+ build_rlist1( $pubrems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'resultdir'}.'/'.'rlist-clear', 'rlist-clear');
+ build_list2( $pubrems, $broken1, $broken2, $sameop, Echolot::Config::get()->{'resultdir'}.'/'.'rlist2-clear', 'rlist2-clear');
if (Echolot::Config::get()->{'combined_list'}) {
$clist->{'cpunk-clear'} = $rems;
$pubclist->{'cpunk-clear'} = $pubrems; $pubrems = undef;
};
};
if (Echolot::Config::get()->{'combined_list'}) {
- build_clist( $clist, $broken1, $broken2, $sameop, Echolot::Config::get()->{'private_resultdir'}.'/'.'clist', Echolot::Config::get()->{'templates'}->{'clist'});
- build_clist( $pubclist, $broken1, $broken2, $sameop, Echolot::Config::get()->{'resultdir'}.'/'.'clist', Echolot::Config::get()->{'templates'}->{'clist'});
+ build_clist( $clist, $broken1, $broken2, $sameop, Echolot::Config::get()->{'private_resultdir'}.'/'.'clist', 'clist');
+ build_clist( $pubclist, $broken1, $broken2, $sameop, Echolot::Config::get()->{'resultdir'}.'/'.'clist', 'clist');
};
$stats{'unique_addresses'} = scalar keys %addresses;
Echolot::Tools::write_HTML_file(
Echolot::Config::get()->{'resultdir'}.'/'.Echolot::Config::get()->{'indexfilebasename'},
- Echolot::Config::get()->{'templates'}->{'indexfile'},
+ 'indexfile',
Echolot::Config::get()->{'buildstats'},
%stats );
+
+ my $file = Echolot::Config::get()->{'echolot_css'},
+ my $css;
+ {
+ local $/ = undef;
+ open(F, $file) or
+ cluck("Could not open $file: $!\n"),
+ return 0;
+ $css = <F>;
+ close (F) or
+ cluck("Cannot close $file: $!\n"),
+ return 0;
+ }
+ $file = Echolot::Config::get()->{'resultdir'}.'/echolot.css';
+ open(F, '>'.$file) or
+ cluck("Cannot open $file: $!\n"),
+ return 0;
+ print F $css or
+ cluck("Cannot print to $file: $!\n"),
+ return 0;
+ close (F) or
+ cluck("Cannot close $file: $!\n"),
+ return 0;
+
};
diff --git a/Echolot/Thesaurus.pm b/Echolot/Thesaurus.pm
index 887429e..b32dd80 100644
--- a/Echolot/Thesaurus.pm
+++ b/Echolot/Thesaurus.pm
@@ -1,7 +1,7 @@
package Echolot::Thesaurus;
# (c) 2002 Peter Palfrader <peter@palfrader.org>
-# $Id: Thesaurus.pm,v 1.12 2002/09/05 15:41:38 weasel Exp $
+# $Id: Thesaurus.pm,v 1.13 2002/12/03 02:59:13 weasel Exp $
#
=pod
@@ -103,7 +103,7 @@ sub build_thesaurus() {
Echolot::Tools::write_HTML_file(
Echolot::Config::get()->{'thesaurusindexfile'},
- Echolot::Config::get()->{'templates'}->{'thesaurusindexfile'},
+ 'thesaurusindexfile',
Echolot::Config::get()->{'buildthesaurus'},
remailers => \@data);
};
diff --git a/Echolot/Tools.pm b/Echolot/Tools.pm
index 7a83049..20ae504 100644
--- a/Echolot/Tools.pm
+++ b/Echolot/Tools.pm
@@ -1,7 +1,7 @@
package Echolot::Tools;
# (c) 2002 Peter Palfrader <peter@palfrader.org>
-# $Id: Tools.pm,v 1.11 2002/10/25 10:47:54 weasel Exp $
+# $Id: Tools.pm,v 1.12 2002/12/03 02:59:13 weasel Exp $
#
=pod
@@ -205,37 +205,43 @@ sub write_meta_information($%) {
};
sub write_HTML_file($$;$%) {
- my ($file, $template_file, $expire, %templateparams) = @_;
-
- my $template = HTML::Template->new(
- filename => $template_file,
- strict => 0,
- die_on_bad_params => 0,
- global_vars => 1 );
- $template->param ( %templateparams );
- $template->param ( CURRENT_TIMESTAMP => scalar gmtime() );
- $template->param ( SITE_NAME => Echolot::Config::get()->{'sitename'} );
- $template->param ( separate_rlist => Echolot::Config::get()->{'separate_rlists'} );
- $template->param ( combined_list => Echolot::Config::get()->{'combined_list'} );
- $template->param ( thesaurus => Echolot::Config::get()->{'thesaurus'} );
- $template->param ( version => Echolot::Globals::get()->{'version'} );
- $template->param ( expires => date822( time + $expire ));
-
- open(F, '>'.$file) or
- cluck("Cannot open $file: $!\n"),
- return 0;
- print F $template->output() or
- cluck("Cannot print to $file: $!\n"),
- return 0;
- close (F) or
- cluck("Cannot close $file: $!\n"),
- return 0;
-
- if (defined $expire) {
- write_meta_information($file,
- Expires => time + $expire) or
- cluck ("Error while writing meta information for $file"),
+ my ($origfile, $template_file, $expire, %templateparams) = @_;
+
+ for my $lang ( keys %{Echolot::Config::get()->{'templates'}} ) {
+ my $template = HTML::Template->new(
+ filename => Echolot::Config::get()->{'templates'}->{$lang}->{$template_file},
+ strict => 0,
+ die_on_bad_params => 0,
+ global_vars => 1 );
+ $template->param ( %templateparams );
+ $template->param ( CURRENT_TIMESTAMP => scalar gmtime() );
+ $template->param ( SITE_NAME => Echolot::Config::get()->{'sitename'} );
+ $template->param ( separate_rlist => Echolot::Config::get()->{'separate_rlists'} );
+ $template->param ( combined_list => Echolot::Config::get()->{'combined_list'} );
+ $template->param ( thesaurus => Echolot::Config::get()->{'thesaurus'} );
+ $template->param ( version => Echolot::Globals::get()->{'version'} );
+ $template->param ( expires => date822( time + $expire ));
+
+ my $file = $origfile;
+ $file .= '.'.$lang unless ($lang eq 'default');
+ $file .= '.html';
+
+ open(F, '>'.$file) or
+ cluck("Cannot open $file: $!\n"),
return 0;
+ print F $template->output() or
+ cluck("Cannot print to $file: $!\n"),
+ return 0;
+ close (F) or
+ cluck("Cannot close $file: $!\n"),
+ return 0;
+
+ if (defined $expire) {
+ write_meta_information($file,
+ Expires => time + $expire) or
+ cluck ("Error while writing meta information for $file"),
+ return 0;
+ };
};
return 1;
diff --git a/NEWS b/NEWS
index ace9406..aea6f57 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,10 @@
+Changes in
+ * Have support for translated templates
+ * Use CSS - they need to be trimmed, I don't like Sergiusz's colors
+ * thesaurusindexfile and indexfilebasename config values should not
+ longer have the extension (.html) in them
+ FIXME - handle this gracefully for now
+
Changes in version 2.0.5 - 2002-10-25
* Only take default parameters if they are not set in
pingd.conf (as opposed to set to undef).
diff --git a/doc/pingd.conf.pod b/doc/pingd.conf.pod
index 479ca7b..a0af135 100644
--- a/doc/pingd.conf.pod
+++ b/doc/pingd.conf.pod
@@ -402,7 +402,7 @@ The directory where Thesaurus data is put.
The Thesaurus index file.
- Default: 'thesaurusindexfile' => 'results/thesaurus/index.html',
+ Default: 'thesaurusindexfile' => 'results/thesaurus/index',
=item B<private_resultdir>
@@ -415,8 +415,8 @@ show set to false are shown here too).
The file to write the index.html to (relative to the result directory).
- Default: 'indexfilebasename' => 'echolot.html',
- Example: 'indexfilebasename' => 'index.html',
+ Default: 'indexfilebasename' => 'echolot',
+ Example: 'indexfilebasename' => 'index',
=item B<gnupghome>
@@ -581,7 +581,7 @@ Pings mixmaster remailers.
=item B<templates>
The template files are used to generate the HTML version of all Echolot output.
-It is a hash that has the following keys:
+It is a hash of hashes which each have following keys:
B<thesaurusindexfile>,
B<mlist>,
B<mlist2>,
@@ -595,21 +595,39 @@ B<rlist2-dsa>,
B<rlist2-clear>, and
B<clist>.
+The outer hash keys are for language selection.
+
Default: 'templates' => {
- 'thesaurusindexfile' => 'templates/thesaurusindex.html',
- 'mlist' => 'templates/mlist.html',
- 'mlist2' => 'templates/mlist2.html',
- 'rlist' => 'templates/rlist.html',
- 'rlist-rsa' => 'templates/rlist-rsa.html',
- 'rlist-dsa' => 'templates/rlist-dsa.html',
- 'rlist-clear' => 'templates/rlist-clear.html',
- 'rlist2' => 'templates/rlist2.html',
- 'rlist2-rsa' => 'templates/rlist2-rsa.html',
- 'rlist2-dsa' => 'templates/rlist2-dsa.html',
- 'rlist2-clear' => 'templates/rlist2-clear.html',
- 'clist' => 'templates/clist.html',
+ 'default' => {
+ 'thesaurusindexfile' => 'templates/thesaurusindex.html',
+ 'mlist' => 'templates/mlist.html',
+ 'mlist2' => 'templates/mlist2.html',
+ 'rlist' => 'templates/rlist.html',
+ 'rlist-rsa' => 'templates/rlist-rsa.html',
+ 'rlist-dsa' => 'templates/rlist-dsa.html',
+ 'rlist-clear' => 'templates/rlist-clear.html',
+ 'rlist2' => 'templates/rlist2.html',
+ 'rlist2-rsa' => 'templates/rlist2-rsa.html',
+ 'rlist2-dsa' => 'templates/rlist2-dsa.html',
+ 'rlist2-clear' => 'templates/rlist2-clear.html',
+ 'clist' => 'templates/clist.html',
+ },
+ 'de' => {
+ 'thesaurusindexfile' => 'templates/thesaurusindex.de.html',
+ ....
+ },
+ 'pl' => {
+ 'thesaurusindexfile' => 'templates/thesaurusindex.pl.html',
+ ....
+ }
};
+=item B<echolot_css>
+
+Location of the CSS file. This is copied to resultdir/echolot.css.
+
+ Default: 'echolot_css' => 'templates/echolot.css',
+
=back
diff --git a/templates/clist.html b/templates/clist.html
index da2ec29..29f5f37 100644
--- a/templates/clist.html
+++ b/templates/clist.html
@@ -2,7 +2,8 @@
<head>
<title>Remailers (combined list) [<TMPL_VAR NAME="SITE_NAME">]</title>
<META HTTP-EQUIV="Expires" CONTENT="<TMPL_VAR NAME="EXPIRES">">
- <!-- $Id: clist.html,v 1.9 2002/09/12 15:41:49 weasel Exp $ -->
+ <link href="echolot.css" rel="stylesheet" type="text/css">
+ <!-- $Id: clist.html,v 1.10 2002/12/03 02:59:13 weasel Exp $ -->
</head>
<body>
<h1>Remailer Reliability Stats [<TMPL_VAR NAME="SITE_NAME">]</h1>
diff --git a/templates/echolot.html b/templates/echolot.html
index 161840c..82d710c 100644
--- a/templates/echolot.html
+++ b/templates/echolot.html
@@ -2,7 +2,8 @@
<head>
<title>Remailer Reliability Stats [<TMPL_VAR NAME="SITE_NAME">]</title>
<META HTTP-EQUIV="Expires" CONTENT="<TMPL_VAR NAME="EXPIRES">">
- <!-- $Id: echolot.html,v 1.9 2002/09/12 15:41:49 weasel Exp $ -->
+ <link href="echolot.css" rel="stylesheet" type="text/css">
+ <!-- $Id: echolot.html,v 1.10 2002/12/03 02:59:13 weasel Exp $ -->
</head>
<body>
<h1>Remailer Reliability Stats [<TMPL_VAR NAME="SITE_NAME">]</h1>
diff --git a/templates/mlist.html b/templates/mlist.html
index fa2e5bc..0980ce8 100644
--- a/templates/mlist.html
+++ b/templates/mlist.html
@@ -2,7 +2,8 @@
<head>
<title>Mixmaster Remailers [<TMPL_VAR NAME="SITE_NAME">]</title>
<META HTTP-EQUIV="Expires" CONTENT="<TMPL_VAR NAME="EXPIRES">">
- <!-- $Id: mlist.html,v 1.10 2002/09/12 15:41:49 weasel Exp $ -->
+ <link href="echolot.css" rel="stylesheet" type="text/css">
+ <!-- $Id: mlist.html,v 1.11 2002/12/03 02:59:13 weasel Exp $ -->
</head>
<body>
<h1>Remailer Reliability Stats [<TMPL_VAR NAME="SITE_NAME">]</h1>
diff --git a/templates/mlist2.html b/templates/mlist2.html
index 4624f84..fd64666 100644
--- a/templates/mlist2.html
+++ b/templates/mlist2.html
@@ -2,7 +2,8 @@
<head>
<title>Mixmaster Remailers (v2) [<TMPL_VAR NAME="SITE_NAME">]</title>
<META HTTP-EQUIV="Expires" CONTENT="<TMPL_VAR NAME="EXPIRES">">
- <!-- $Id: mlist2.html,v 1.10 2002/09/12 15:41:49 weasel Exp $ -->
+ <link href="echolot.css" rel="stylesheet" type="text/css">
+ <!-- $Id: mlist2.html,v 1.11 2002/12/03 02:59:13 weasel Exp $ -->
</head>
<body>
<h1>Remailer Reliability Stats [<TMPL_VAR NAME="SITE_NAME">]</h1>
diff --git a/templates/rlist-clear.html b/templates/rlist-clear.html
index fa0124b..ff13738 100644
--- a/templates/rlist-clear.html
+++ b/templates/rlist-clear.html
@@ -2,7 +2,8 @@
<head>
<title>Cypherpunk Remailers (cleartext only) [<TMPL_VAR NAME="SITE_NAME">]</title>
<META HTTP-EQUIV="Expires" CONTENT="<TMPL_VAR NAME="EXPIRES">">
- <!-- $Id: rlist-clear.html,v 1.9 2002/09/12 15:41:49 weasel Exp $ -->
+ <link href="echolot.css" rel="stylesheet" type="text/css">
+ <!-- $Id: rlist-clear.html,v 1.10 2002/12/03 02:59:13 weasel Exp $ -->
</head>
<body>
<h1>Remailer Reliability Stats [<TMPL_VAR NAME="SITE_NAME">]</h1>
diff --git a/templates/rlist-dsa.html b/templates/rlist-dsa.html
index a4ecaaf..7441395 100644
--- a/templates/rlist-dsa.html
+++ b/templates/rlist-dsa.html
@@ -2,7 +2,8 @@
<head>
<title>Cypherpunk Remailers (DSA only) [<TMPL_VAR NAME="SITE_NAME">]</title>
<META HTTP-EQUIV="Expires" CONTENT="<TMPL_VAR NAME="EXPIRES">">
- <!-- $Id: rlist-dsa.html,v 1.9 2002/09/12 15:41:49 weasel Exp $ -->
+ <link href="echolot.css" rel="stylesheet" type="text/css">
+ <!-- $Id: rlist-dsa.html,v 1.10 2002/12/03 02:59:13 weasel Exp $ -->
</head>
<body>
<h1>Remailer Reliability Stats [<TMPL_VAR NAME="SITE_NAME">]</h1>
diff --git a/templates/rlist-rsa.html b/templates/rlist-rsa.html
index 8476e47..ef03f75 100644
--- a/templates/rlist-rsa.html
+++ b/templates/rlist-rsa.html
@@ -2,7 +2,8 @@
<head>
<title>Cypherpunk Remailers (RSA only) [<TMPL_VAR NAME="SITE_NAME">]</title>
<META HTTP-EQUIV="Expires" CONTENT="<TMPL_VAR NAME="EXPIRES">">
- <!-- $Id: rlist-rsa.html,v 1.9 2002/09/12 15:41:49 weasel Exp $ -->
+ <link href="echolot.css" rel="stylesheet" type="text/css">
+ <!-- $Id: rlist-rsa.html,v 1.10 2002/12/03 02:59:13 weasel Exp $ -->
</head>
<body>
<h1>Remailer Reliability Stats [<TMPL_VAR NAME="SITE_NAME">]</h1>
diff --git a/templates/rlist.html b/templates/rlist.html
index 3ff82c0..61f3f08 100644
--- a/templates/rlist.html
+++ b/templates/rlist.html
@@ -2,7 +2,8 @@
<head>
<title>Cypherpunk Remailers [<TMPL_VAR NAME="SITE_NAME">]</title>
<META HTTP-EQUIV="Expires" CONTENT="<TMPL_VAR NAME="EXPIRES">">
- <!-- $Id: rlist.html,v 1.10 2002/09/12 15:41:49 weasel Exp $ -->
+ <link href="echolot.css" rel="stylesheet" type="text/css">
+ <!-- $Id: rlist.html,v 1.11 2002/12/03 02:59:13 weasel Exp $ -->
</head>
<body>
<h1>Remailer Reliability Stats [<TMPL_VAR NAME="SITE_NAME">]</h1>
diff --git a/templates/rlist2-clear.html b/templates/rlist2-clear.html
index baa3669..9733df2 100644
--- a/templates/rlist2-clear.html
+++ b/templates/rlist2-clear.html
@@ -2,7 +2,8 @@
<head>
<title>Cypherpunk Remailers (v2, cleartext only) [<TMPL_VAR NAME="SITE_NAME">]</title>
<META HTTP-EQUIV="Expires" CONTENT="<TMPL_VAR NAME="EXPIRES">">
- <!-- $Id: rlist2-clear.html,v 1.9 2002/09/12 15:41:49 weasel Exp $ -->
+ <link href="echolot.css" rel="stylesheet" type="text/css">
+ <!-- $Id: rlist2-clear.html,v 1.10 2002/12/03 02:59:13 weasel Exp $ -->
</head>
<body>
<h1>Remailer Reliability Stats [<TMPL_VAR NAME="SITE_NAME">]</h1>
diff --git a/templates/rlist2-dsa.html b/templates/rlist2-dsa.html
index 6c22631..2026402 100644
--- a/templates/rlist2-dsa.html
+++ b/templates/rlist2-dsa.html
@@ -2,7 +2,8 @@
<head>
<title>Cypherpunk Remailers (v2, DSA only) [<TMPL_VAR NAME="SITE_NAME">]</title>
<META HTTP-EQUIV="Expires" CONTENT="<TMPL_VAR NAME="EXPIRES">">
- <!-- $Id: rlist2-dsa.html,v 1.9 2002/09/12 15:41:49 weasel Exp $ -->
+ <link href="echolot.css" rel="stylesheet" type="text/css">
+ <!-- $Id: rlist2-dsa.html,v 1.10 2002/12/03 02:59:13 weasel Exp $ -->
</head>
<body>
<h1>Remailer Reliability Stats [<TMPL_VAR NAME="SITE_NAME">]</h1>
diff --git a/templates/rlist2-rsa.html b/templates/rlist2-rsa.html
index 915dbbe..1452132 100644
--- a/templates/rlist2-rsa.html
+++ b/templates/rlist2-rsa.html
@@ -2,7 +2,8 @@
<head>
<title>Cypherpunk Remailers (v2, RSA only) [<TMPL_VAR NAME="SITE_NAME">]</title>
<META HTTP-EQUIV="Expires" CONTENT="<TMPL_VAR NAME="EXPIRES">">
- <!-- $Id: rlist2-rsa.html,v 1.9 2002/09/12 15:41:49 weasel Exp $ -->
+ <link href="echolot.css" rel="stylesheet" type="text/css">
+ <!-- $Id: rlist2-rsa.html,v 1.10 2002/12/03 02:59:13 weasel Exp $ -->
</head>
<body>
<h1>Remailer Reliability Stats [<TMPL_VAR NAME="SITE_NAME">]</h1>
diff --git a/templates/rlist2.html b/templates/rlist2.html
index 33e924b..2450e06 100644
--- a/templates/rlist2.html
+++ b/templates/rlist2.html
@@ -2,7 +2,8 @@
<head>
<title>Cypherpunk Remailers (v2) [<TMPL_VAR NAME="SITE_NAME">]</title>
<META HTTP-EQUIV="Expires" CONTENT="<TMPL_VAR NAME="EXPIRES">">
- <!-- $Id: rlist2.html,v 1.10 2002/09/12 15:41:49 weasel Exp $ -->
+ <link href="echolot.css" rel="stylesheet" type="text/css">
+ <!-- $Id: rlist2.html,v 1.11 2002/12/03 02:59:13 weasel Exp $ -->
</head>
<body>
<h1>Remailer Reliability Stats [<TMPL_VAR NAME="SITE_NAME">]</h1>
diff --git a/templates/thesaurusindex.html b/templates/thesaurusindex.html
index 08b8bf8..61b7393 100644
--- a/templates/thesaurusindex.html
+++ b/templates/thesaurusindex.html
@@ -2,7 +2,8 @@
<head>
<title>Thesaurus [<TMPL_VAR NAME="SITE_NAME">]</title>
<META HTTP-EQUIV="Expires" CONTENT="<TMPL_VAR NAME="EXPIRES">">
- <!-- $Id: thesaurusindex.html,v 1.5 2002/08/14 22:54:20 weasel Exp $ -->
+ <link href="../echolot.css" rel="stylesheet" type="text/css">
+ <!-- $Id: thesaurusindex.html,v 1.6 2002/12/03 02:59:13 weasel Exp $ -->
</head>
<body>
<h1>Thesaurus [<TMPL_VAR NAME="SITE_NAME">]</h1>