diff options
author | http://jmtd.livejournal.com/ <http://jmtd.livejournal.com/@web> | 2010-11-15 14:23:01 +0000 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2010-11-15 14:23:01 +0000 |
commit | 53e519931f3a6b7cea0af652d749344757d4e2bc (patch) | |
tree | 0b23c437c29cbdbe1ac4f15b68a240ee4331c049 | |
parent | 5ecba3b05d66bb58dc48a9027838e8b0bcbc0db9 (diff) | |
download | ikiwiki-53e519931f3a6b7cea0af652d749344757d4e2bc.tar ikiwiki-53e519931f3a6b7cea0af652d749344757d4e2bc.tar.gz |
template files being treated as regular pages and the problems that can cause
-rw-r--r-- | doc/bugs/argument_isn__39__t_numeric:_mixing_templates_and_creation__95__date.mdwn | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/doc/bugs/argument_isn__39__t_numeric:_mixing_templates_and_creation__95__date.mdwn b/doc/bugs/argument_isn__39__t_numeric:_mixing_templates_and_creation__95__date.mdwn new file mode 100644 index 000000000..70af505c1 --- /dev/null +++ b/doc/bugs/argument_isn__39__t_numeric:_mixing_templates_and_creation__95__date.mdwn @@ -0,0 +1,58 @@ +I get the following error when building my wiki + + Argument "\x{3c}\x{54}..." isn't numeric in numeric eq (==) at /usr/share/perl5/IkiWiki.pm line 2547. + Argument "\x{3c}\x{54}..." isn't numeric in numeric eq (==) at /usr/share/perl5/IkiWiki.pm line 2547. + +that line corresponds to + + sub match_creation_year ($$;@) { + if ((localtime($IkiWiki::pagectime{shift()}))[5] + 1900 == shift) { <-- this one + return IkiWiki::SuccessReason->new('creation_year matched'); + } + +A git bisect shows that the offending commit introduced this hunk + + + --- /dev/null + +++ b/templates/all_entry.mdwn + @@ -0,0 +1,23 @@ + +## <TMPL_VAR year> + + + +There + +<TMPL_IF current> + +have been + +<TMPL_ELSE> + +were + +</TMPL_IF> + +[[!pagecount pages=" + +log/* and !tagged(aggregation) and !*/Discussion and !tagged(draft) + +and creation_year(<TMPL_VAR year>) + +and !*.png and !*.jpg + +"]] posts + +<TMPL_IF current> + +so far + +</TMPL_IF> + +in <TMPL_VAR year>. + + + +[[!inline pages=" + + log/* and !tagged(aggregation) and !*/Discussion and !tagged(draft) + + and creation_year(<TMPL_VAR year>) + + and !*.png and !*.jpg + + " archive=yes feeds=no]] + +The lines which feature creation_year(<TMPL_VAR year>) are most likely the culprits. That would explain why the error was repeated twice, and would tally with the file in `templates/` being rendered, rather than the inclusionists. + +A workaround is to move the template outside of the srcdir into the external templates directory and include the file suffix when using it, e.g. + + \[[!template id=all_entry.tmpl year=2010 current=true]] + +An alternative fix is to wrap the entire template inside a test to see whether the page is included or not. E.g. + + + \[[!if test="included()" then=""" + ...template... + """ else=""" + Nothing to see here. + """]] + +In fact, this is probably best practice for in-srcdir templates. I'd consider this done if the documentation for the directive suggested it. -- [[Jon]] |