summaryrefslogtreecommitdiff
path: root/IkiWiki
diff options
context:
space:
mode:
Diffstat (limited to 'IkiWiki')
-rw-r--r--IkiWiki/Plugin/inline.pm29
-rw-r--r--IkiWiki/Plugin/po.pm6
2 files changed, 23 insertions, 12 deletions
diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm
index a501566b5..c9cbb9cb7 100644
--- a/IkiWiki/Plugin/inline.pm
+++ b/IkiWiki/Plugin/inline.pm
@@ -307,17 +307,7 @@ sub preprocess_inline (@) {
# Add a blog post form, with feed buttons.
my $formtemplate=template("blogpost.tmpl", blind_cache => 1);
$formtemplate->param(cgiurl => $config{cgiurl});
- my $rootpage;
- if (exists $params{rootpage}) {
- $rootpage=bestlink($params{page}, $params{rootpage});
- if (!length $rootpage) {
- $rootpage=$params{rootpage};
- }
- }
- else {
- $rootpage=$params{page};
- }
- $formtemplate->param(rootpage => $rootpage);
+ $formtemplate->param(rootpage => rootpage(%params));
$formtemplate->param(rssurl => $rssurl) if $feeds && $rss;
$formtemplate->param(atomurl => $atomurl) if $feeds && $atom;
if (exists $params{postformtext}) {
@@ -654,4 +644,21 @@ sub pingurl (@) {
exit 0; # daemon done
}
+
+sub rootpage (@) {
+ my %params=@_;
+
+ my $rootpage;
+ if (exists $params{rootpage}) {
+ $rootpage=bestlink($params{page}, $params{rootpage});
+ if (!length $rootpage) {
+ $rootpage=$params{rootpage};
+ }
+ }
+ else {
+ $rootpage=$params{page};
+ }
+ return $rootpage;
+}
+
1
diff --git a/IkiWiki/Plugin/po.pm b/IkiWiki/Plugin/po.pm
index 55c1c32c6..103347c37 100644
--- a/IkiWiki/Plugin/po.pm
+++ b/IkiWiki/Plugin/po.pm
@@ -564,9 +564,13 @@ sub mybestlink ($$) {
my $link=shift;
my $res=$origsubs{'bestlink'}->(masterpage($page), $link);
+ my @caller = caller(1);
if (length $res
&& istranslatable($res)
- && istranslation($page)) {
+ && istranslation($page)
+ # keep masterpage as the rootpage for inline's post form
+ && !(exists $caller[3] && defined $caller[3]
+ && ($caller[3] eq "IkiWiki::rootpage"))) {
return $res . "." . lang($page);
}
return $res;