From b025be7b869c06a774c09c92170c060bd9e1b179 Mon Sep 17 00:00:00 2001 From: Peter Palfrader Date: Tue, 3 Dec 2002 02:59:13 +0000 Subject: 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 --- Echolot/Config.pm | 36 +++++++++++---------- Echolot/Stats.pm | 74 ++++++++++++++++++++++++++++--------------- Echolot/Thesaurus.pm | 4 +-- Echolot/Tools.pm | 68 +++++++++++++++++++++------------------ NEWS | 7 ++++ doc/pingd.conf.pod | 50 +++++++++++++++++++---------- templates/clist.html | 3 +- templates/echolot.html | 3 +- templates/mlist.html | 3 +- templates/mlist2.html | 3 +- templates/rlist-clear.html | 3 +- templates/rlist-dsa.html | 3 +- templates/rlist-rsa.html | 3 +- templates/rlist.html | 3 +- templates/rlist2-clear.html | 3 +- templates/rlist2-dsa.html | 3 +- templates/rlist2-rsa.html | 3 +- templates/rlist2.html | 3 +- templates/thesaurusindex.html | 3 +- 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 -# $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 -# $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//>/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 = ; + 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 -# $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 -# $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 @@ -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 @@ -581,7 +581,7 @@ Pings mixmaster remailers. =item B 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, B, B, @@ -595,21 +595,39 @@ B, B, and B. +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 + +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 @@ Remailers (combined list) [<TMPL_VAR NAME="SITE_NAME">] "> - + +

Remailer Reliability Stats []

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 @@ Remailer Reliability Stats [<TMPL_VAR NAME="SITE_NAME">] "> - + +

Remailer Reliability Stats []

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 @@ Mixmaster Remailers [<TMPL_VAR NAME="SITE_NAME">] "> - + +

Remailer Reliability Stats []

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 @@ Mixmaster Remailers (v2) [<TMPL_VAR NAME="SITE_NAME">] "> - + +

Remailer Reliability Stats []

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 @@ Cypherpunk Remailers (cleartext only) [<TMPL_VAR NAME="SITE_NAME">] "> - + +

Remailer Reliability Stats []

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 @@ Cypherpunk Remailers (DSA only) [<TMPL_VAR NAME="SITE_NAME">] "> - + +

Remailer Reliability Stats []

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 @@ Cypherpunk Remailers (RSA only) [<TMPL_VAR NAME="SITE_NAME">] "> - + +

Remailer Reliability Stats []

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 @@ Cypherpunk Remailers [<TMPL_VAR NAME="SITE_NAME">] "> - + +

Remailer Reliability Stats []

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 @@ Cypherpunk Remailers (v2, cleartext only) [<TMPL_VAR NAME="SITE_NAME">] "> - + +

Remailer Reliability Stats []

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 @@ Cypherpunk Remailers (v2, DSA only) [<TMPL_VAR NAME="SITE_NAME">] "> - + +

Remailer Reliability Stats []

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 @@ Cypherpunk Remailers (v2, RSA only) [<TMPL_VAR NAME="SITE_NAME">] "> - + +

Remailer Reliability Stats []

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 @@ Cypherpunk Remailers (v2) [<TMPL_VAR NAME="SITE_NAME">] "> - + +

Remailer Reliability Stats []

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 @@ Thesaurus [<TMPL_VAR NAME="SITE_NAME">] "> - + +

Thesaurus []

-- cgit v1.2.3