* Centralised all calls to HTML::Template and force all the templates
to be read as utf8.master
parent
2ed1419c1d
commit
d1d212203c
20
IkiWiki.pm
20
IkiWiki.pm
|
@ -3,8 +3,6 @@
|
|||
package IkiWiki;
|
||||
use warnings;
|
||||
use strict;
|
||||
use File::Spec;
|
||||
use HTML::Template;
|
||||
|
||||
use vars qw{%config %links %oldlinks %oldpagemtime %pagectime
|
||||
%renderedfiles %pagesources %depends %hooks};
|
||||
|
@ -304,6 +302,7 @@ sub htmllink ($$$;$$$) { #{{{
|
|||
"\">?</a>$linktext</span>"
|
||||
}
|
||||
|
||||
require File::Spec;
|
||||
$bestlink=File::Spec->abs2rel($bestlink, dirname($page));
|
||||
|
||||
if (! $noimageinline && isinlinableimage($bestlink)) {
|
||||
|
@ -390,13 +389,24 @@ sub saveindex () { #{{{
|
|||
close OUT;
|
||||
} #}}}
|
||||
|
||||
sub template_params (@) { #{{{
|
||||
my $filename=shift;
|
||||
|
||||
require Encode;
|
||||
require HTML::Template;
|
||||
return filter => \&Encode::decode_utf8,
|
||||
filename => "$config{templatedir}/$filename", @_;
|
||||
} #}}}
|
||||
|
||||
sub template ($;@) { #{{{
|
||||
HTML::Template->new(template_params(@_));
|
||||
} #}}}
|
||||
|
||||
sub misctemplate ($$) { #{{{
|
||||
my $title=shift;
|
||||
my $pagebody=shift;
|
||||
|
||||
my $template=HTML::Template->new(
|
||||
filename => "$config{templatedir}/misc.tmpl"
|
||||
);
|
||||
my $template=template("misc.tmpl");
|
||||
$template->param(
|
||||
title => $title,
|
||||
indexlink => indexlink(),
|
||||
|
|
|
@ -33,11 +33,7 @@ sub cgi_recentchanges ($) { #{{{
|
|||
|
||||
unlockwiki();
|
||||
|
||||
# Force reading the template as utf-8, necessary if
|
||||
# rcs_recentchanges returns true utf-8 strings.
|
||||
require Encode;
|
||||
my $template=HTML::Template->new(filter => \&Encode::decode_utf8,
|
||||
filename => "$config{templatedir}/recentchanges.tmpl");
|
||||
my $template=template("recentchanges.tmpl");
|
||||
$template->param(
|
||||
title => "RecentChanges",
|
||||
indexlink => indexlink(),
|
||||
|
@ -72,7 +68,7 @@ sub cgi_signin ($$) { #{{{
|
|||
action => $config{cgiurl},
|
||||
header => 0,
|
||||
template => (-e "$config{templatedir}/signin.tmpl" ?
|
||||
"$config{templatedir}/signin.tmpl" : ""),
|
||||
{template_params("signin.tmpl")} : ""),
|
||||
stylesheet => styleurl(),
|
||||
);
|
||||
|
||||
|
@ -185,9 +181,7 @@ sub cgi_signin ($$) { #{{{
|
|||
}
|
||||
elsif ($form->submitted eq 'Mail Password') {
|
||||
my $user_name=$form->field("name");
|
||||
my $template=HTML::Template->new(
|
||||
filename => "$config{templatedir}/passwordmail.tmpl"
|
||||
);
|
||||
my $template=template("passwordmail.tmpl");
|
||||
$template->param(
|
||||
user_name => $user_name,
|
||||
user_password => userinfo_get($user_name, "password"),
|
||||
|
@ -239,7 +233,7 @@ sub cgi_prefs ($$) { #{{{
|
|||
params => $q,
|
||||
action => $config{cgiurl},
|
||||
template => (-e "$config{templatedir}/prefs.tmpl" ?
|
||||
"$config{templatedir}/prefs.tmpl" : ""),
|
||||
{template_params("prefs.tmpl")} : ""),
|
||||
stylesheet => styleurl(),
|
||||
);
|
||||
my @buttons=("Save Preferences", "Logout", "Cancel");
|
||||
|
@ -308,7 +302,7 @@ sub cgi_editpage ($$) { #{{{
|
|||
params => $q,
|
||||
action => $config{cgiurl},
|
||||
table => 0,
|
||||
template => "$config{templatedir}/editpage.tmpl"
|
||||
template => {template_params("editpage.tmpl")},
|
||||
);
|
||||
my @buttons=("Save Page", "Preview", "Cancel");
|
||||
|
||||
|
|
|
@ -40,8 +40,7 @@ sub preprocess_inline (@) { #{{{
|
|||
|
||||
if (exists $params{rootpage}) {
|
||||
# Add a blog post form, with a rss link button.
|
||||
my $formtemplate=HTML::Template->new(blind_cache => 1,
|
||||
filename => "$config{templatedir}/blogpost.tmpl");
|
||||
my $formtemplate=template("blogpost.tmpl", blind_cache => 1);
|
||||
$formtemplate->param(cgiurl => $config{cgiurl});
|
||||
$formtemplate->param(rootpage => $params{rootpage});
|
||||
if ($config{rss}) {
|
||||
|
@ -51,16 +50,17 @@ sub preprocess_inline (@) { #{{{
|
|||
}
|
||||
elsif ($config{rss}) {
|
||||
# Add a rss link button.
|
||||
my $linktemplate=HTML::Template->new(blind_cache => 1,
|
||||
filename => "$config{templatedir}/rsslink.tmpl");
|
||||
my $linktemplate=template("rsslink.tmpl", blind_cache => 1);
|
||||
$linktemplate->param(rssurl => rsspage(basename($params{page})));
|
||||
$ret.=$linktemplate->output;
|
||||
}
|
||||
|
||||
my $template=HTML::Template->new(blind_cache => 1,
|
||||
filename => (($params{archive} eq "no")
|
||||
? "$config{templatedir}/inlinepage.tmpl"
|
||||
: "$config{templatedir}/inlinepagetitle.tmpl"));
|
||||
my $template=template(
|
||||
(($params{archive} eq "no")
|
||||
? "inlinepage.tmpl"
|
||||
: "inlinepagetitle.tmpl"),
|
||||
blind_cache => 1,
|
||||
);
|
||||
|
||||
my @pages;
|
||||
foreach my $page (blog_list($params{pages}, $params{show})) {
|
||||
|
@ -146,8 +146,7 @@ sub genrss ($@) { #{{{
|
|||
|
||||
my $url="$config{url}/".htmlpage($page);
|
||||
|
||||
my $template=HTML::Template->new(blind_cache => 1,
|
||||
filename => "$config{templatedir}/rsspage.tmpl");
|
||||
my $template=template("rsspage.tmpl", blind_cache => 1);
|
||||
|
||||
my @items;
|
||||
foreach my $p (@pages) {
|
||||
|
|
|
@ -87,9 +87,7 @@ sub estcfg () { #{{{
|
|||
close TEMPLATE;
|
||||
open(TEMPLATE, ">$estdir/$cgi.conf") ||
|
||||
error("write $estdir/$cgi.conf: $!");
|
||||
my $template=HTML::Template->new(
|
||||
filename => "$config{templatedir}/estseek.conf"
|
||||
);
|
||||
my $template=template("estseek.conf");
|
||||
eval q{use Cwd 'abs_path'};
|
||||
$template->param(
|
||||
index => $estdir,
|
||||
|
|
|
@ -449,9 +449,7 @@ sub rcs_notify () { #{{{
|
|||
}
|
||||
$subject .= " by $user";
|
||||
|
||||
my $template = HTML::Template->new(
|
||||
filename => "$config{templatedir}/notifymail.tmpl"
|
||||
);
|
||||
my $template = template("notifymail.tmpl");
|
||||
$template->param(
|
||||
wikiname => $config{wikiname},
|
||||
diff => $diff,
|
||||
|
|
|
@ -202,9 +202,7 @@ sub rcs_notify () { #{{{
|
|||
}
|
||||
$subject.=" by $user";
|
||||
|
||||
my $template=HTML::Template->new(
|
||||
filename => "$config{templatedir}/notifymail.tmpl"
|
||||
);
|
||||
my $template=template("notifymail.tmpl");
|
||||
$template->param(
|
||||
wikiname => $config{wikiname},
|
||||
diff => $diff,
|
||||
|
|
|
@ -25,11 +25,13 @@ sub htmlize ($$) { #{{{
|
|||
my $content=shift;
|
||||
|
||||
if (! $INC{"/usr/bin/markdown"}) {
|
||||
# Note: a proper perl module is available in Debian
|
||||
# for markdown, but not upstream yet.
|
||||
no warnings 'once';
|
||||
$blosxom::version="is a proper perl module too much to ask?";
|
||||
use warnings 'all';
|
||||
do "/usr/bin/markdown";
|
||||
use Encode;
|
||||
require Encode;
|
||||
}
|
||||
|
||||
if ($type eq '.mdwn') {
|
||||
|
@ -171,8 +173,7 @@ sub genpage ($$$) { #{{{
|
|||
|
||||
my $title=pagetitle(basename($page));
|
||||
|
||||
my $template=HTML::Template->new(blind_cache => 1,
|
||||
filename => "$config{templatedir}/page.tmpl");
|
||||
my $template=template("page.tmpl", blind_cache => 1);
|
||||
my $actions=0;
|
||||
|
||||
if (length $config{cgiurl}) {
|
||||
|
|
|
@ -20,8 +20,10 @@ ikiwiki (1.8) UNRELEASED; urgency=low
|
|||
perl, #376329. Also added a test case for it.
|
||||
* Improve layout of edit page so formatting help link is always visible w/o
|
||||
getting in the way of the preview.
|
||||
* Centralised all calls to HTML::Template and force all the templates
|
||||
to be read as utf8.
|
||||
|
||||
-- Joey Hess <joeyh@debian.org> Sun, 2 Jul 2006 13:43:56 -0400
|
||||
-- Joey Hess <joeyh@debian.org> Sun, 2 Jul 2006 14:55:40 -0400
|
||||
|
||||
ikiwiki (1.7) unstable; urgency=low
|
||||
|
||||
|
|
|
@ -17,4 +17,6 @@ won't cache templates.
|
|||
|
||||
Could be approached by using HTML::Template's support for filters. Just make it use a filter that turns on utf-8
|
||||
|
||||
Or by subclassing it and overriding the \_init\_template method, though that's a bit uglier
|
||||
Or by subclassing it and overriding the \_init\_template method, though that's a bit uglier
|
||||
|
||||
[[bugs/done]]
|
||||
|
|
Loading…
Reference in New Issue