ikiwiki/doc/bugs/po:_plugin_should_not_overr...

59 lines
2.4 KiB
Markdown

The po plugin systematically overrides the title of the homepage with the wikiname. This prevents explicitly changing it with a meta directive. It should rather check whether it was overridden before setting it back.
Here is a simple patch for that:
diff --git a/Plugin/po.pm b/Plugin/po.pm
index 6395ebd..a048c6a 100644
--- a/Plugin/po.pm
+++ b/Plugin/po.pm
@@ -333,7 +333,7 @@ sub pagetemplate (@) {
&& $masterpage eq "index") {
$template->param('parentlinks' => []);
}
- if (ishomepage($page) && $template->query(name => "title")) {
+ if (ishomepage($page) && $template->query(name => "title") && !$template->query(name => "title_overridden")) {
$template->param(title => $config{wikiname});
}
}
Thanks.
> I fixed this patch a bit and applied it to my po branch, thanks
> (commit 406485917).
>
> But... a bug (probably in HTML::Template) prevents this
> theoretically correct solution to actually work.
> Setting a parameter that does not appear in the template, such as
> `title_overridden`, is not working on my install: the value does not
> seem to be stored anywhere, and when accessing it later using
> `$template->param('title_overridden')` it is always undef.
> Adding `<TMPL_IF TMPL_VAR TITLE_OVERRIDDEN></TMPL_IF>` in
> `page.tmpl` is a working, but ugly workaround.
>
> I am nevertheless in favour of merging the fix into ikiwiki.
> We'll then need to find how to find the remaining (smaller) bug so
> that this code can actually work.
>
> I'd like others to test my po branch and see if they can reproduce
> the bug I am talking of.
>
> --[[intrigeri]]
>> Commit 406485917 looks fine to me, FWIW --[[smcv]]
>>> I tracked the HTML::Template bug (or missing documentation?) a bit
>>> more. This lead to commit b2a2246ba in my po branch, that enables
>>> HTML::Template's parent_global_vars option which makes
>>> title_overridden work.
>>>
>>> OTOH I feel this workaround is a bit ugly as this option is not
>>> documented. IMHO being forced to use it reveals a bug in
>>> HTML::Template. I reported this:
>>> https://rt.cpan.org/Public/Bug/Display.html?id=64158.
>>>
>>> But still, I think we need to apply the workaround as
>>> HTML::Template's author has not updated any dist on CPAN for more
>>> than one year. --[[intrigeri]]
>>>> All merged, [[done]]. --[[Joey]]