response
[ikiwiki.git] / doc / patchqueue / meta_plugin_should_not_escape_title.mdwn
1 The meta plugin escapes the overridden title of a page, which makes the title doubly escaped in RSS feeds.
2
3 > Er, didn't that already get fixed in svn?
4
5 Instead, the meta plugin should not escape the overridden title, but the templates should escape the title (overridden or not) whenever needed.
6
7 > That doesn't work; now nonoverridden titles will be double escaped. And
8 > if you look at removing the code that esapes them the first time, things
9 > become complex.. --[[Joey]]
10
11         === perl/IkiWiki/Plugin/meta.pm
12         ==================================================================
13         --- perl/IkiWiki/Plugin/meta.pm (revision 6730)
14         +++ perl/IkiWiki/Plugin/meta.pm (revision 6731)
15         @@ -122,7 +122,7 @@
16                 $template->param(meta => $meta{$page})
17                         if exists $meta{$page} && $template->query(name => "meta");
18                 if (exists $title{$page} && $template->query(name => "title")) {
19         -               $template->param(title => $title{$page});
20         +               $template->param(title => decode_entities($title{$page}));
21                         $template->param(title_overridden => 1);
22                 }
23                 $template->param(permalink => $permalink{$page})
24         === templates/recentchanges.tmpl
25         ==================================================================
26         --- templates/recentchanges.tmpl        (revision 6730)
27         +++ templates/recentchanges.tmpl        (revision 6731)
28         @@ -4,7 +4,7 @@
29          <head>
30          <base href="<TMPL_VAR BASEURL>" />
31          <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
32         -<title><TMPL_VAR TITLE></title>
33         +<title><TMPL_VAR TITLE ESCAPE=HTML></title>
34          <link rel="stylesheet" href="<TMPL_VAR BASEURL>style.css" type="text/css" />
35          <link rel="stylesheet" href="<TMPL_VAR BASEURL>local.css" type="text/css" />
36          <TMPL_IF NAME="FAVICON">
37         @@ -15,7 +15,7 @@
38          
39          <div class="header">
40          <span>
41         -<TMPL_VAR INDEXLINK>/ <span class="title"><TMPL_VAR TITLE></span>
42         +<TMPL_VAR INDEXLINK>/ <span class="title"><TMPL_VAR TITLE ESCAPE=HTML></span>
43          </span>
44          </div>
45          
46         === templates/inlinepage.tmpl
47         ==================================================================
48         --- templates/inlinepage.tmpl   (revision 6730)
49         +++ templates/inlinepage.tmpl   (revision 6731)
50         @@ -10,9 +10,9 @@
51          </TMPL_IF>
52          <span class="header">
53          <TMPL_IF NAME="PERMALINK">
54         -<a href="<TMPL_VAR PERMALINK>"><TMPL_VAR TITLE></a>
55         +<a href="<TMPL_VAR PERMALINK>"><TMPL_VAR TITLE ESCAPE=HTML></a>
56          <TMPL_ELSE>
57         -<a href="<TMPL_VAR PAGEURL>"><TMPL_VAR TITLE></a>
58         +<a href="<TMPL_VAR PAGEURL>"><TMPL_VAR TITLE ESCAPE=HTML></a>
59          </TMPL_IF>
60          </span>
61          <TMPL_VAR CONTENT>
62         === templates/misc.tmpl
63         ==================================================================
64         --- templates/misc.tmpl (revision 6730)
65         +++ templates/misc.tmpl (revision 6731)
66         @@ -4,7 +4,7 @@
67          <head>
68          <base href="<TMPL_VAR BASEURL>" />
69          <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
70         -<title><TMPL_VAR TITLE></title>
71         +<title><TMPL_VAR TITLE ESCAPE=HTML></title>
72          <link rel="stylesheet" href="<TMPL_VAR BASEURL>style.css" type="text/css" />
73          <link rel="stylesheet" href="<TMPL_VAR BASEURL>local.css" type="text/css" />
74          <TMPL_IF NAME="FAVICON">
75         @@ -15,7 +15,7 @@
76          
77          <div class="header">
78          <span>
79         -<TMPL_VAR INDEXLINK>/ <span class="title"><TMPL_VAR TITLE></span>
80         +<TMPL_VAR INDEXLINK>/ <span class="title"><TMPL_VAR TITLE ESCAPE=HTML></span>
81          </span>
82          </div>
83          
84         === templates/page.tmpl
85         ==================================================================
86         --- templates/page.tmpl (revision 6730)
87         +++ templates/page.tmpl (revision 6731)
88         @@ -3,7 +3,7 @@
89          <html>
90          <head>
91          <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
92         -<title><TMPL_VAR TITLE></title>
93         +<title><TMPL_VAR TITLE ESCAPE=HTML></title>
94          <TMPL_IF NAME="FAVICON">
95          <link rel="icon" href="<TMPL_VAR BASEURL><TMPL_VAR FAVICON>" type="image/x-icon" />
96          </TMPL_IF>
97         @@ -18,7 +18,7 @@
98          <span>
99          <span class="parentlinks"><TMPL_LOOP NAME="PARENTLINKS">
100          <a href="<TMPL_VAR NAME=URL>"><TMPL_VAR NAME=PAGE></a>/ 
101         -</TMPL_LOOP></span><span class="title"><TMPL_VAR TITLE></span>
102         +</TMPL_LOOP></span><span class="title"><TMPL_VAR TITLE ESCAPE=HTML></span>
103          </span>
104          <TMPL_IF NAME="SEARCHFORM">
105          <TMPL_VAR SEARCHFORM>
106         === templates/archivepage.tmpl
107         ==================================================================
108         --- templates/archivepage.tmpl  (revision 6730)
109         +++ templates/archivepage.tmpl  (revision 6731)
110         @@ -1,4 +1,4 @@
111          <p>
112          <i><TMPL_VAR CTIME></i>
113         -<a href="<TMPL_VAR PAGEURL>"><TMPL_VAR TITLE></a>
114         +<a href="<TMPL_VAR PAGEURL>"><TMPL_VAR TITLE ESCAPE=HTML></a>
115          </p>
116         === templates/titlepage.tmpl
117         ==================================================================
118         --- templates/titlepage.tmpl    (revision 6730)
119         +++ templates/titlepage.tmpl    (revision 6731)
120         @@ -1 +1 @@
121         -<p><a href="<TMPL_VAR PAGEURL>"><TMPL_VAR TITLE></a></p>
122         +<p><a href="<TMPL_VAR PAGEURL>"><TMPL_VAR TITLE ESCAPE=HTML></a></p>