diff options
author | Joey Hess <joey@gnu.kitenet.net> | 2008-12-26 14:07:19 -0500 |
---|---|---|
committer | Joey Hess <joey@gnu.kitenet.net> | 2008-12-26 14:07:19 -0500 |
commit | 9db06329c98e1a390bbb6323de02dc7e2f45f1f8 (patch) | |
tree | 9be1a22b818a00a94bce43959e6b7a14ef898598 | |
parent | 0d406010ff8ffb8d891318bbaf6b6de1e2cb2578 (diff) | |
download | ikiwiki-9db06329c98e1a390bbb6323de02dc7e2f45f1f8.tar ikiwiki-9db06329c98e1a390bbb6323de02dc7e2f45f1f8.tar.gz |
comments: Deal with users entering unqualified or partial urls.
People seem to be able to expect to enter www.foo.com and get away with it.
The resulting my.wiki/www.foo.com link was not ideal.
To fix it, use URI::Heuristic to expand such things into a real url. It
even looks up hostnames in the DNS if necessary.
-rw-r--r-- | IkiWiki/Plugin/comments.pm | 13 | ||||
-rw-r--r-- | debian/changelog | 1 |
2 files changed, 12 insertions, 2 deletions
diff --git a/IkiWiki/Plugin/comments.pm b/IkiWiki/Plugin/comments.pm index 0ae9eefe3..d8318d3e3 100644 --- a/IkiWiki/Plugin/comments.pm +++ b/IkiWiki/Plugin/comments.pm @@ -198,8 +198,17 @@ sub preprocess { $pagestate{$page}{meta}{author} = $params{claimedauthor}; } - if (defined $params{url} and safeurl($params{url})) { - $pagestate{$page}{meta}{authorurl} = $params{url}; + if (defined $params{url}) { + my $url=$params{url}; + + eval q{use URI::Heuristic}; + if (! $@) { + $url=URI::Heuristic::uf_uristr($url); + } + + if (safeurl($url)) { + $pagestate{$page}{meta}{authorurl} = $url; + } } } else { diff --git a/debian/changelog b/debian/changelog index 19b8cbdf7..96a70fcc9 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,6 +4,7 @@ ikiwiki (2.72) UNRELEASED; urgency=low * Add deprecation warning for GlobLists, which will stop working in 3.0. * camelcase: Add camelcase_ignore setting. * googlecalendar: Add runtime deprecation warning. + * comments: Deal with users entering unqualified or partial urls. -- Joey Hess <joeyh@debian.org> Mon, 22 Dec 2008 19:02:16 -0500 |