diff options
author | joey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071> | 2007-05-28 19:43:28 +0000 |
---|---|---|
committer | joey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071> | 2007-05-28 19:43:28 +0000 |
commit | ba1765fbdfeb0fd1fdf1354c1688580ef7864b68 (patch) | |
tree | ca178c0c9343617e4b85879fb8ca91bd6a77605a | |
parent | 8fc13829491c4a3ec3d8e174fd96687e111da251 (diff) | |
download | ikiwiki-ba1765fbdfeb0fd1fdf1354c1688580ef7864b68.tar ikiwiki-ba1765fbdfeb0fd1fdf1354c1688580ef7864b68.tar.gz |
* More consistent encoding of titles in rss and atom feeds. Don't use
ESCAPE=HTML for titles in the templates for these feeds, and instead
escape the title going in to the template. Previously, the title was
sometimes double-escaped in a feed (if set via meta title), and sometimes
not (if set from the page filename).
* In the meta plugin, when a title is set, encode the html entities in it
numerically. This works better in the current landscape of a rss spec that
doesn't specify encoding, and variously broken feed consumers, according
to <http://www.rssboard.org/rss-profile#data-types-characterdata>.
-rw-r--r-- | IkiWiki/Plugin/inline.pm | 4 | ||||
-rw-r--r-- | IkiWiki/Plugin/meta.pm | 2 | ||||
-rw-r--r-- | debian/changelog | 13 | ||||
-rw-r--r-- | doc/bugs/HTML-escaped_titles_in_Atom__44___RSS_feeds_don__39__t_validate.mdwn | 4 | ||||
-rw-r--r-- | templates/atomitem.tmpl | 2 | ||||
-rw-r--r-- | templates/atompage.tmpl | 2 | ||||
-rw-r--r-- | templates/rssitem.tmpl | 4 | ||||
-rw-r--r-- | templates/rsspage.tmpl | 2 |
8 files changed, 23 insertions, 10 deletions
diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm index 063673730..e23f7b903 100644 --- a/IkiWiki/Plugin/inline.pm +++ b/IkiWiki/Plugin/inline.pm @@ -333,7 +333,7 @@ sub genfeed ($$$$@) { #{{{ my $pcontent = absolute_urls(get_inline_content($p, $page), $url); $itemtemplate->param( - title => pagetitle(basename($p), 1), + title => pagetitle(basename($p)), url => $u, permalink => $u, date_822 => date_822($pagectime{$p}), @@ -377,7 +377,7 @@ sub genfeed ($$$$@) { #{{{ my $template=template($feedtype."page.tmpl", blind_cache => 1); $template->param( - title => $page ne "index" ? pagetitle($page, 1) : $config{wikiname}, + title => $page ne "index" ? pagetitle($page) : $config{wikiname}, wikiname => $config{wikiname}, pageurl => $url, content => $content, diff --git a/IkiWiki/Plugin/meta.pm b/IkiWiki/Plugin/meta.pm index 18e28a196..184146cfe 100644 --- a/IkiWiki/Plugin/meta.pm +++ b/IkiWiki/Plugin/meta.pm @@ -65,7 +65,7 @@ sub preprocess (@) { #{{{ } } elsif ($key eq 'title') { - $title{$page}=encode_entities($value); + $title{$page}=HTML::Entities::encode_numeric($value); } elsif ($key eq 'permalink') { $permalink{$page}=$value; diff --git a/debian/changelog b/debian/changelog index 94576d451..ffcb2e85a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -18,8 +18,17 @@ ikiwiki (2.2) UNRELEASED; urgency=low * Fix FTBFS in test suite introduced in last version. Closes: #425891 * Apply a patch from Carl Worth allowing a class attribute to be passed through the img plugin. Also allow the id attribute to be passed through. - - -- Joey Hess <joeyh@debian.org> Mon, 28 May 2007 15:00:02 -0400 + * More consistent encoding of titles in rss and atom feeds. Don't use + ESCAPE=HTML for titles in the templates for these feeds, and instead + escape the title going in to the template. Previously, the title was + sometimes double-escaped in a feed (if set via meta title), and sometimes + not (if set from the page filename). + * In the meta plugin, when a title is set, encode the html entities in it + numerically. This works better in the current landscape of a rss spec that + doesn't specify encoding, and variously broken feed consumers, according + to <http://www.rssboard.org/rss-profile#data-types-characterdata>. + + -- Joey Hess <joeyh@debian.org> Mon, 28 May 2007 15:34:27 -0400 ikiwiki (2.1) unstable; urgency=low diff --git a/doc/bugs/HTML-escaped_titles_in_Atom__44___RSS_feeds_don__39__t_validate.mdwn b/doc/bugs/HTML-escaped_titles_in_Atom__44___RSS_feeds_don__39__t_validate.mdwn index 9d95c15e3..48c168997 100644 --- a/doc/bugs/HTML-escaped_titles_in_Atom__44___RSS_feeds_don__39__t_validate.mdwn +++ b/doc/bugs/HTML-escaped_titles_in_Atom__44___RSS_feeds_don__39__t_validate.mdwn @@ -30,3 +30,7 @@ For Atom, at least, I believe adding `type="xhtml"` to the title element will wo > characters are currently being double-escaped in the rss.) > > --[[Joey]] + +> Update: Ok, I've fixed this for titles, as a special case, but the +> underlying problem remains for other fields in rss feeds (such as +> author), so I'm leaving this bug report open. --[[Joey]] diff --git a/templates/atomitem.tmpl b/templates/atomitem.tmpl index bdbfe69c7..9190fcc84 100644 --- a/templates/atomitem.tmpl +++ b/templates/atomitem.tmpl @@ -1,5 +1,5 @@ <entry> - <title><TMPL_VAR TITLE ESCAPE=HTML></title> + <title><TMPL_VAR TITLE></title> <TMPL_IF NAME="AUTHOR"> <author><TMPL_VAR AUTHOR ESCAPE=HTML></author> <TMPL_ELSE> diff --git a/templates/atompage.tmpl b/templates/atompage.tmpl index b811b8764..1bca3e7f8 100644 --- a/templates/atompage.tmpl +++ b/templates/atompage.tmpl @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <feed xmlns="http://www.w3.org/2005/Atom"> -<title><TMPL_VAR TITLE ESCAPE=HTML></title> +<title><TMPL_VAR TITLE></title> <link href="<TMPL_VAR PAGEURL>"/> <link href="<TMPL_VAR FEEDURL>" rel="self"/> <author> diff --git a/templates/rssitem.tmpl b/templates/rssitem.tmpl index 0fab42e71..c243b74b3 100644 --- a/templates/rssitem.tmpl +++ b/templates/rssitem.tmpl @@ -1,9 +1,9 @@ <item> <TMPL_IF NAME="AUTHOR"> - <title><TMPL_VAR AUTHOR ESCAPE=HTML>: <TMPL_VAR TITLE ESCAPE=HTML></title> + <title><TMPL_VAR AUTHOR ESCAPE=HTML>: <TMPL_VAR TITLE></title> <dc:creator><TMPL_VAR AUTHOR ESCAPE=HTML></dc:creator> <TMPL_ELSE> - <title><TMPL_VAR TITLE ESCAPE=HTML></title> + <title><TMPL_VAR TITLE></title> </TMPL_IF> <guid><TMPL_VAR URL></guid> <link><TMPL_VAR PERMALINK></link> diff --git a/templates/rsspage.tmpl b/templates/rsspage.tmpl index 38f9b16b3..34c1a33ce 100644 --- a/templates/rsspage.tmpl +++ b/templates/rsspage.tmpl @@ -1,7 +1,7 @@ <?xml version="1.0"?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel> -<title><TMPL_VAR TITLE ESCAPE=HTML></title> +<title><TMPL_VAR TITLE></title> <link><TMPL_VAR PAGEURL></link> <description><TMPL_VAR FEEDDESC ESCAPE=HTML></description> <TMPL_VAR CONTENT> |