]> sipb.mit.edu Git - ikiwiki.git/commitdiff
* Centralised all calls to HTML::Template and force all the templates
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Sun, 2 Jul 2006 19:06:08 +0000 (19:06 +0000)
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Sun, 2 Jul 2006 19:06:08 +0000 (19:06 +0000)
  to be read as utf8.

IkiWiki.pm
IkiWiki/CGI.pm
IkiWiki/Plugin/inline.pm
IkiWiki/Plugin/search.pm
IkiWiki/Rcs/git.pm
IkiWiki/Rcs/svn.pm
IkiWiki/Render.pm
debian/changelog
doc/bugs/utf8_html_templates.mdwn

index a2af406a93a692bdc5743b31e95248804521907f..7002b55bed24169e3c356ff22af9bc5d0f0e9fcc 100644 (file)
@@ -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(),
index e02ab62a685da2e97da353d1c8a5b98cdf55ba1c..d069de8dc3725e6030d8e61bad03e64c54d4e9ab 100644 (file)
@@ -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");
        
index 05563b9464fc1cf21b65710d541d40bb124169cb..afff96cee6a7801c56780ac98719f816ff4d4dda 100644 (file)
@@ -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) {
index c94974ac4b608bfbf122f4455a0fe3fc0fcc71a6..94b37ca06ef034ea93445da6f27a21ef033ef127 100644 (file)
@@ -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,
index f29ffa16238fb1826377eda6ccfdf491485cfa10..636eb57f552863bbdc76bebc9c14ad5e25c728e2 100644 (file)
@@ -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,
index 42ded0cea8f3b322a901348fd11adf6212b78bc2..be4106a02d143704f1e9bf2496e1e0b56dcf43b2 100644 (file)
@@ -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,
index 54e409040ad119b8e6adf9bba850dbf21a255090..3be8e1c53ff96973891c758875b93d9ac3cc2bfc 100644 (file)
@@ -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}) {
index 5afcf976c2c005a8271b38310eee7882713327a0..5b7b66e161e84acbd1c57d53d6460d94c644b53d 100644 (file)
@@ -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
 
index 5d7ea836bd56b72467f01cc93d52f4818642616f..a750b23f6d9e3df779090b0c2e45ba664e2e33de 100644 (file)
@@ -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
\ No newline at end of file
+Or by subclassing it and overriding the \_init\_template method, though that's a bit uglier
+
+[[bugs/done]]