]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki/Plugin/inline.pm
trail: Allow unescaped punctuation in pagenames
[git.ikiwiki.info.git] / IkiWiki / Plugin / inline.pm
index d68723dffd04dd5d502a55edd1d2106288e98456..a85cd5d2f5f6ec09967a351edb9e54cd0610e9fa 100644 (file)
@@ -121,6 +121,9 @@ sub sessioncgi ($$) {
        if ($q->param('do') eq 'blog') {
                my $page=titlepage(decode_utf8(scalar $q->param('title')));
                $page=~s/(\/)/"__".ord($1)."__"/eg; # don't create subdirs
+               if (! length $page) {
+                       error(gettext("please enter a page title"));
+               }
                # if the page already exists, munge it to be unique
                my $from=$q->param('from');
                my $add="";
@@ -183,7 +186,7 @@ sub preprocess_inline (@) {
        my $feedonly=yesno($params{feedonly});
 
        # Backwards compatibility
-       if (defined $params{show} && $params{show} =~ m/^\d+$/) {
+       if (defined $params{show} && $params{show} =~ m/^-?\d+$/) {
                $params{limit} = $params{show};
                delete $params{show};
        }
@@ -613,7 +616,7 @@ sub absolute_urls ($$) {
                                        $v=$baseurl.$v; # anchor
                                }
                                elsif ($dv=~/^(?!\w+:)[^\/]/) {
-                                       $v=$url.$v; # relative url
+                                       $v=URI->new_abs($v, $url)->canonical; # relative url
                                }
                                elsif ($dv=~/^\//) {
                                        if (! defined $urltop) {
@@ -725,6 +728,7 @@ sub genfeed ($$$$$@) {
 
        my $template=template_depends($feedtype."page.tmpl", $page, blind_cache => 1);
        $template->param(
+               wants_absolute_urls => 1,
                title => $feedtitle,
                wikiname => $config{wikiname},
                pageurl => $url,