78 lines
4.0 KiB
Markdown
78 lines
4.0 KiB
Markdown
I recently moved from Trisquel's version of ikiwiki (from 2013, the same one of
|
|
Debian wheezy backports) to the version 5.20141016 which I built from git, by
|
|
pulling the tag. One of the new things I have now is the templatebody
|
|
directive.
|
|
|
|
> Not directly relevant to this bug, but if you want the latest ikiwiki release
|
|
> for a Debian derivative, you can fetch it from Debian unstable (normally)
|
|
> or Debian experimental (during the Debian release freeze, e.g. now) -
|
|
> the correct way is to get the (signed) source package with `dget`
|
|
> or similar, check the GPG signature (which should be from me or Joey), and
|
|
> rebuild it for your distribution. Just getting the binary `.deb` from Debian
|
|
> is a little more risky, depending how far your distribution has diverged from
|
|
> Debian, but in the case of ikiwiki it should usually work fine in practice.
|
|
> --[[smcv]]
|
|
|
|
I started using it in my templates, and I suddenly notice strange behavior: one
|
|
of my templates renders as the *rest* of the template page when used, instead of
|
|
the body part. In other words, it renders exactly the part it should hide (the
|
|
description) and ignores the body itself (which is inside \[[!templatebody]]).
|
|
|
|
> With a hint from [[kjs]] on [[templates/discussion]], I was able to reproduce
|
|
> this bug. It seems to have been caused by an optimization: please try applying
|
|
> [commit 5fd863b5](http://source.ikiwiki.branchable.com/?p=source.git;a=commitdiff;h=5fd863b5b05449669ec56c6798d836e3302386e2)
|
|
> to your Render.pm. A follow-up commit partially brings back the optimization
|
|
> (only for rebuilds). So I think this is [[done]]? (remove that link if
|
|
> not) --[[smcv]]
|
|
|
|
When I manually re-generate the wiki, it suddenly renders right. As soon as the
|
|
page gets rebuilt automatically after some git push, it renders the wrong way.
|
|
|
|
> Where did you install the newer ikiwiki? `/usr/local`? Somewhere else?
|
|
>
|
|
> It sounds to me as though manual re-generation is using ikiwiki ≥ 3.20140916
|
|
> with the `templatebody` directive enabled, but the git hook is using
|
|
> ikiwiki < 3.20140916 and/or has the `templatebody` disabled. This might
|
|
> result from having a different `PERL5LIB` environment variable in
|
|
> the two situations, for instance.
|
|
>
|
|
> It might help to debug this if you edit your older and newer ikiwiki's
|
|
> `IkiWiki.pm`, `IkiWiki/Render.pm` and/or `IkiWiki/Plugin/templatebody.pm`
|
|
> so they do `print STDERR "loaded (old/new) (whatever).pm"` at some fairly
|
|
> early stage - I would suggest `getsetup()`, `refresh()` and `import()`
|
|
> respectively. --[[smcv]]
|
|
|
|
>> Yes, I installed in `/usr/local`, but I also removed the deb package. So I
|
|
>> only have 1 ikiwiki version now.
|
|
>>
|
|
>> I also noticed the following behavior. I created a set of pages, each of them
|
|
>> containing several occurences of a certain template. Then I created another
|
|
>> page, which inlines all of them. All good. Then, I edited that main page to do
|
|
>> different sorting (using inline directive's sort option). After comitting the change,
|
|
>> suddenly all the inlined pages have the templates inside them contain the
|
|
>> template info instead of template body. How is that even related to the minor
|
|
>> change I did - change the sorting? :-P
|
|
>>
|
|
>> I'll look at the templatebody.pm file and try debug prints. I hope I can see them in
|
|
>> the git push output, because rendering the wiki from command line doesn't have this
|
|
>> problem.
|
|
>>
|
|
>> One more thing, my setup uses the pingee plugin. When doing a git push, it browses to
|
|
>> the wiki page using wget with `?do=ping` parameter, and then ikiwiki responds by rebuilding
|
|
>> the necessary pages.
|
|
>>
|
|
>> Thanks for the pointers.
|
|
>>
|
|
>> --[[fr33domlover]]
|
|
|
|
|
|
[[This|http://www.rel4tion.org/languages/haskell/]] is the page, and
|
|
[[this|http://www.rel4tion.org/templates/wikitag/]] is a template it uses. Right
|
|
now the template is rendered on that page exactly like the template page itself.
|
|
Both display the description text, and the \[[!templatebody]] content isn't
|
|
displayed at all.
|
|
|
|
If I debug it myself and find something relevant, I'll update here.
|
|
|
|
-- [[fr33domlover]]
|