]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki/Plugin/inline.pm
Remember to run all the tests before committing!
[git.ikiwiki.info.git] / IkiWiki / Plugin / inline.pm
index d89e14197f4edfd1e1db5a137e1b6c8584e97eb0..159cc5def01d59aaa3f532cbb4fea14ab52f6435 100644 (file)
@@ -294,11 +294,11 @@ sub preprocess_inline (@) {
        if ($feeds) {
                if ($rss) {
                        $rssurl=abs2rel($feedbase."rss".$feednum, dirname(htmlpage($params{destpage})));
-                       $rssdesc = gettext("%s (RSS feed)", $desc);
+                       $rssdesc = sprintf(gettext("%s (RSS feed)"), $desc);
                }
                if ($atom) {
                        $atomurl=abs2rel($feedbase."atom".$feednum, dirname(htmlpage($params{destpage})));
-                       $atomdesc = gettext("%s (Atom feed)", $desc);
+                       $atomdesc = sprintf(gettext("%s (Atom feed)"), $desc);
                }
        }
 
@@ -329,6 +329,10 @@ sub preprocess_inline (@) {
                        $formtemplate->param(postformtext =>
                                gettext("Add a new post titled:"));
                }
+               if (exists $params{id}) {
+                       $formtemplate->param(postformid =>
+                               $params{id});
+               }
                $ret.=$formtemplate->output;
                
                # The post form includes the feed buttons, so
@@ -346,6 +350,9 @@ sub preprocess_inline (@) {
                        $linktemplate->param(atomurl => $atomurl);
                        $linktemplate->param(atomdesc => $atomdesc);
                }
+               if (exists $params{id}) {
+                       $linktemplate->param(id => $params{id});
+               }
                $ret.=$linktemplate->output;
        }
        
@@ -440,7 +447,7 @@ sub preprocess_inline (@) {
                        if (! $params{preview}) {
                                writefile($rssp, $config{destdir},
                                        genfeed("rss",
-                                               $config{url}."/".$rssp, $desc, $params{guid}, $params{destpage}, @feedlist));
+                                               $config{url}."/".$rssp, $desc, $params{guid}, $params{page}, @feedlist));
                                $toping{$params{destpage}}=1 unless $config{rebuild};
                                $feedlinks{$params{destpage}}.=qq{<link rel="alternate" type="application/rss+xml" title="$rssdesc" href="$rssurl" />};
                        }
@@ -450,7 +457,7 @@ sub preprocess_inline (@) {
                        will_render($params{destpage}, $atomp);
                        if (! $params{preview}) {
                                writefile($atomp, $config{destdir},
-                                       genfeed("atom", $config{url}."/".$atomp, $desc, $params{guid}, $params{destpage}, @feedlist));
+                                       genfeed("atom", $config{url}."/".$atomp, $desc, $params{guid}, $params{page}, @feedlist));
                                $toping{$params{destpage}}=1 unless $config{rebuild};
                                $feedlinks{$params{destpage}}.=qq{<link rel="alternate" type="application/atom+xml" title="$atomdesc" href="$atomurl" />};
                        }
@@ -499,7 +506,7 @@ sub get_inline_content ($$) {
                if (isinternal($page)) {
                        # make inlined text of internal pages searchable
                        run_hooks(indexhtml => sub {
-                               shift->(page => $page, destpage => $page,
+                               shift->(page => $page, destpage => $destpage,
                                        content => $ret);
                        });
                }
@@ -557,13 +564,15 @@ sub absolute_urls ($$) {
                                next unless $v_offset; # 0 v_offset means no value
                                my $v = substr($text, $v_offset, $v_len);
                                $v =~ s/^([\'\"])(.*)\1$/$2/;
-                               if ($v=~/^#/) {
+                               eval q{use HTML::Entities};
+                               my $dv = decode_entities($v);
+                               if ($dv=~/^#/) {
                                        $v=$baseurl.$v; # anchor
                                }
-                               elsif ($v=~/^(?!\w+:)[^\/]/) {
+                               elsif ($dv=~/^(?!\w+:)[^\/]/) {
                                        $v=$url.$v; # relative url
                                }
-                               elsif ($v=~/^\//) {
+                               elsif ($dv=~/^\//) {
                                        if (! defined $urltop) {
                                                # what is the non path part of the url?
                                                my $top_uri = URI->new($url);