X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/ab768a62c66335a96a5791c444e54b8ae3b078b1..6c546c8f3182668c6d21d578b789674894f18c39:/IkiWiki/Plugin/inline.pm diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm index b122bd0f2..f40956821 100644 --- a/IkiWiki/Plugin/inline.pm +++ b/IkiWiki/Plugin/inline.pm @@ -119,10 +119,13 @@ sub sessioncgi ($$) { my $session=shift; if ($q->param('do') eq 'blog') { - my $page=titlepage(decode_utf8($q->param('title'))); + 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 $from=decode_utf8($q->param('from')); my $add=""; while (exists $IkiWiki::pagecase{lc($from."/".$page.$add)}) { $add=1 unless length $add; @@ -160,16 +163,17 @@ sub preprocess_inline (@) { # Running in scan mode: only do the essentials if (yesno($params{trail}) && IkiWiki::Plugin::trail->can("preprocess_trailitems")) { - # default to sorting age, the same as inline itself, - # but let the params override that - IkiWiki::Plugin::trail::preprocess_trailitems(sort => 'age', %params); + # default to sorting by age with fallback to title, + # the same as inline itself, but let the params + # override that + IkiWiki::Plugin::trail::preprocess_trailitems(sort => 'age title', %params); } return; } if (yesno($params{trail}) && IkiWiki::Plugin::trail->can("preprocess_trailitems")) { - scalar IkiWiki::Plugin::trail::preprocess_trailitems(sort => 'age', %params); + scalar IkiWiki::Plugin::trail::preprocess_trailitems(sort => 'age title', %params); } my $raw=yesno($params{raw}); @@ -182,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}; } @@ -256,7 +260,7 @@ sub preprocess_inline (@) { @list = pagespec_match_list($params{page}, $params{pages}, deptype => deptype($quick ? "presence" : "content"), filter => sub { $_[0] eq $params{page} }, - sort => exists $params{sort} ? $params{sort} : "age", + sort => exists $params{sort} ? $params{sort} : "age title", reverse => yesno($params{reverse}), ($num ? (num => $num) : ()), ); @@ -612,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) { @@ -724,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,