Hi, I am trying to build a template. The compilation of this template results in a weird exception. I have isolated the cause of the exception to the following point: If i have this in the template code: \[[!inline
pages="\"
template=extract-entry
\]]
There is no problem at all. I can use the template with the desired result. But if I try to use this (just adding the "show" parameter): \[[!inline
pages="\"
template=extract-entry
show=\
\]]
I get this exception on the Git bash console:
$ git push
Counting objects: 7, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 410 bytes, done.
Total 4 (delta 3), reused 0 (delta 0)
remote: From /home/b-odelama-com/source
remote:    eb1421e..5e1bac5  master     -> origin/master
remote: Argument "\x{3c}\x{54}..." isn't numeric in numeric lt (<) at /usr/share/perl5/IkiWiki/Plugin/inline.pm line 231.
remote: Argument "\x{3c}\x{54}..." isn't numeric in numeric lt (<) at /usr/share/perl5/IkiWiki/Plugin/inline.pm line 231.
To ssh://b-odelama-com@odelama-com.branchable.com/
   eb1421e..5e1bac5  master -> master
Please, let me know what to do to avoid this kind of error. > When you add a template page `templates/foo.mdwn` for use > the [[ikiwiki/directive/template]] directive, two things happen: > > 1. `\[[!template id=foo ...]]` becomes available; > 2. a wiki page `templates/foo` is built, resulting in a HTML file, > typically `templates/foo/index.html` > > The warnings you're seeing are the second of these: when ikiwiki > tries to process `templates/foo.mdwn` as an ordinary page, without > interpreting the `` directives, `inline` receives invalid > input. > > This is a bit of a design flaw in [[plugins/template]] and > [[plugins/edittemplate]], I think - ideally it would be possible to > avoid parts of the page being interpreted when the page is being > rendered normally rather than being used as a template. > > There *is* a trick to avoid parts of the page being interpreted when > the page is being used as a template, while having them appear > when it's rendered as a page: > > > > \[[!meta robots="noindex,nofollow"]] > This template is used to describe a thing. Parameters: > * name: the name of the thing > * size: the size of the thing > > > The thing is called and its size is > > I suppose you could maybe extend that to something like this: > > > > \[[!meta robots="noindex,nofollow"]] > This template is used to describe a thing. Parameters: > * name: the name of the thing > * size: the size of the thing > > > > \[[!if test="included() and !included()" then=""" > > > The thing is called and its size is > > """]] > > > but that's far harder than it ought to be! > > Perhaps the right solution would be to change how the template plugin > works, so that templates are expected to contain a new `definetemplate` > directive: > > This template is used to describe a thing. Parameters: > * name: the name of the thing > * size: the size of the thing > > \[[!definetemplate """ > The thing is called and its size is > """]] > > with templates not containing a `\[[!definetemplate]]` being treated > as if the whole text of the page was copied into a `\[[!definetemplate]]`, > for backwards compatibility? > > --[[smcv]]