]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki/Plugin/inline.pm
Merge branch 'aggregateinternal'
[git.ikiwiki.info.git] / IkiWiki / Plugin / inline.pm
index 344620ebe9ed3f0fc74f81d0bb94d2242aed4433..5517e3c9434e9d483f343e8c676db6da42efcda7 100644 (file)
@@ -70,12 +70,12 @@ sub sessioncgi () { #{{{
        my $session=shift;
 
        if ($q->param('do') eq 'blog') {
        my $session=shift;
 
        if ($q->param('do') eq 'blog') {
-               my $page=decode_utf8($q->param('title'));
-               $page=~s/\///g; # no slashes in blog posts
+               my $page=IkiWiki::titlepage(decode_utf8($q->param('title')));
+               $page=~s/(\/)/"__".ord($1)."__"/eg; # don't create subdirs
                # if the page already exists, munge it to be unique
                my $from=$q->param('from');
                my $add="";
                # if the page already exists, munge it to be unique
                my $from=$q->param('from');
                my $add="";
-               while (exists $IkiWiki::pagecase{lc($from."/".IkiWiki::titlepage($page).$add)}) {
+               while (exists $IkiWiki::pagecase{lc($from."/".$page.$add)}) {
                        $add=1 unless length $add;
                        $add++;
                }
                        $add=1 unless length $add;
                        $add++;
                }
@@ -94,16 +94,11 @@ package IkiWiki;
 my %toping;
 my %feedlinks;
 
 my %toping;
 my %feedlinks;
 
-sub yesno ($) { #{{{
-       my $val=shift;
-       return (defined $val && lc($val) eq "yes");
-} #}}}
-
 sub preprocess_inline (@) { #{{{
        my %params=@_;
        
        if (! exists $params{pages}) {
 sub preprocess_inline (@) { #{{{
        my %params=@_;
        
        if (! exists $params{pages}) {
-               return "[[inline ".gettext("missing pages parameter")."]]";
+               error gettext("missing pages parameter");
        }
        my $raw=yesno($params{raw});
        my $archive=yesno($params{archive});
        }
        my $raw=yesno($params{raw});
        my $archive=yesno($params{archive});
@@ -278,7 +273,7 @@ sub preprocess_inline (@) { #{{{
                                        }
                                        if (length $config{cgiurl} && defined $type) {
                                                $template->param(have_actions => 1);
                                        }
                                        if (length $config{cgiurl} && defined $type) {
                                                $template->param(have_actions => 1);
-                                               $template->param(editurl => cgiurl(do => "edit", page => pagetitle($page, 1)));
+                                               $template->param(editurl => cgiurl(do => "edit", page => $page));
                                        }
                                }
        
                                        }
                                }
        
@@ -313,7 +308,7 @@ sub preprocess_inline (@) { #{{{
                        if (! $params{preview}) {
                                writefile($rssp, $config{destdir},
                                        genfeed("rss",
                        if (! $params{preview}) {
                                writefile($rssp, $config{destdir},
                                        genfeed("rss",
-                                               $config{url}."/".rsspage($params{destpage}).$feednum, $desc, $params{destpage}, @feedlist));
+                                               $config{url}."/".rsspage($params{destpage}).$feednum, $desc, $params{guid}, $params{destpage}, @feedlist));
                                $toping{$params{destpage}}=1 unless $config{rebuild};
                                $feedlinks{$params{destpage}}=qq{<link rel="alternate" type="application/rss+xml" title="RSS" href="$rssurl" />};
                        }
                                $toping{$params{destpage}}=1 unless $config{rebuild};
                                $feedlinks{$params{destpage}}=qq{<link rel="alternate" type="application/rss+xml" title="RSS" href="$rssurl" />};
                        }
@@ -323,7 +318,7 @@ sub preprocess_inline (@) { #{{{
                        will_render($params{destpage}, $atomp);
                        if (! $params{preview}) {
                                writefile($atomp, $config{destdir},
                        will_render($params{destpage}, $atomp);
                        if (! $params{preview}) {
                                writefile($atomp, $config{destdir},
-                                       genfeed("atom", $config{url}."/".atompage($params{destpage}).$feednum, $desc, $params{destpage}, @feedlist));
+                                       genfeed("atom", $config{url}."/".atompage($params{destpage}).$feednum, $desc, $params{guid}, $params{destpage}, @feedlist));
                                $toping{$params{destpage}}=1 unless $config{rebuild};
                                $feedlinks{$params{destpage}}=qq{<link rel="alternate" type="application/atom+xml" title="Atom" href="$atomurl" />};
                        }
                                $toping{$params{destpage}}=1 unless $config{rebuild};
                                $feedlinks{$params{destpage}}=qq{<link rel="alternate" type="application/atom+xml" title="Atom" href="$atomurl" />};
                        }
@@ -416,10 +411,11 @@ sub atompage ($) { #{{{
        return targetpage(shift, "atom");
 } #}}}
 
        return targetpage(shift, "atom");
 } #}}}
 
-sub genfeed ($$$$@) { #{{{
+sub genfeed ($$$$$@) { #{{{
        my $feedtype=shift;
        my $feedurl=shift;
        my $feeddesc=shift;
        my $feedtype=shift;
        my $feedurl=shift;
        my $feeddesc=shift;
+       my $guid=shift;
        my $page=shift;
        my @pages=@_;
        
        my $page=shift;
        my @pages=@_;
        
@@ -442,6 +438,11 @@ sub genfeed ($$$$@) { #{{{
                        mdate_3339 => date_3339($pagemtime{$p}),
                );
 
                        mdate_3339 => date_3339($pagemtime{$p}),
                );
 
+               if (exists $pagestate{$p} &&
+                   exists $pagestate{$p}{meta}{guid}) {
+                       $itemtemplate->param(guid => $pagestate{$p}{meta}{guid});
+               }
+
                if ($itemtemplate->query(name => "enclosure")) {
                        my $file=$pagesources{$p};
                        my $type=pagetype($file);
                if ($itemtemplate->query(name => "enclosure")) {
                        my $file=$pagesources{$p};
                        my $type=pagetype($file);
@@ -484,6 +485,7 @@ sub genfeed ($$$$@) { #{{{
                pageurl => $url,
                content => $content,
                feeddesc => $feeddesc,
                pageurl => $url,
                content => $content,
                feeddesc => $feeddesc,
+               guid => $guid,
                feeddate => date_3339($lasttime),
                feedurl => $feedurl,
                version => $IkiWiki::version,
                feeddate => date_3339($lasttime),
                feedurl => $feedurl,
                version => $IkiWiki::version,