]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki/Plugin/inline.pm
Handle the case when HTML got tidied.
[git.ikiwiki.info.git] / IkiWiki / Plugin / inline.pm
index 8890e5ed068c3b0dad86d8def01c7ce1016434c2..2f09019431b44fd4c5ab458f44fe90026367d996 100644 (file)
@@ -94,16 +94,11 @@ package IkiWiki;
 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}) {
-               return "[[inline ".gettext("missing pages parameter")."]]";
+               error gettext("missing pages parameter");
        }
        my $raw=yesno($params{raw});
        my $archive=yesno($params{archive});
@@ -313,7 +308,7 @@ sub preprocess_inline (@) { #{{{
                        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" />};
                        }
@@ -323,7 +318,7 @@ sub preprocess_inline (@) { #{{{
                        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" />};
                        }
@@ -416,20 +411,21 @@ sub atompage ($) { #{{{
        return targetpage(shift, "atom");
 } #}}}
 
-sub genfeed ($$$$@) { #{{{
+sub genfeed ($$$$$@) { #{{{
        my $feedtype=shift;
        my $feedurl=shift;
        my $feeddesc=shift;
+       my $guid=shift;
        my $page=shift;
        my @pages=@_;
        
-       my $url=URI->new(encode_utf8($config{url}."/".urlto($page,"")));
+       my $url=URI->new(encode_utf8(urlto($page,"",1)));
        
        my $itemtemplate=template($feedtype."item.tmpl", blind_cache => 1);
        my $content="";
        my $lasttime = 0;
        foreach my $p (@pages) {
-               my $u=URI->new(encode_utf8($config{url}."/".urlto($p, "")));
+               my $u=URI->new(encode_utf8(urlto($p, "", 1)));
                my $pcontent = absolute_urls(get_inline_content($p, $page), $url);
 
                $itemtemplate->param(
@@ -442,6 +438,11 @@ sub genfeed ($$$$@) { #{{{
                        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);
@@ -484,6 +485,7 @@ sub genfeed ($$$$@) { #{{{
                pageurl => $url,
                content => $content,
                feeddesc => $feeddesc,
+               guid => $guid,
                feeddate => date_3339($lasttime),
                feedurl => $feedurl,
                version => $IkiWiki::version,
@@ -519,7 +521,7 @@ sub pingurl (@) { #{{{
 
        foreach my $page (keys %toping) {
                my $title=pagetitle(basename($page), 0);
-               my $url="$config{url}/".urlto($page, "");
+               my $url=urlto($page, "", 1);
                foreach my $pingurl (@{$config{pingurl}}) {
                        debug("Pinging $pingurl for $page");
                        eval {