aboutsummaryrefslogtreecommitdiff
path: root/doc/bugs/argument_isn__39__t_numeric:_mixing_templates_and_creation__95__date.mdwn
diff options
context:
space:
mode:
authorhttp://jmtd.livejournal.com/ <http://jmtd.livejournal.com/@web>2010-11-15 14:23:01 +0000
committerJoey Hess <joey@kitenet.net>2010-11-15 14:23:01 +0000
commit53e519931f3a6b7cea0af652d749344757d4e2bc (patch)
tree0b23c437c29cbdbe1ac4f15b68a240ee4331c049 /doc/bugs/argument_isn__39__t_numeric:_mixing_templates_and_creation__95__date.mdwn
parent5ecba3b05d66bb58dc48a9027838e8b0bcbc0db9 (diff)
downloadikiwiki-53e519931f3a6b7cea0af652d749344757d4e2bc.tar
ikiwiki-53e519931f3a6b7cea0af652d749344757d4e2bc.tar.gz
template files being treated as regular pages and the problems that can cause
Diffstat (limited to 'doc/bugs/argument_isn__39__t_numeric:_mixing_templates_and_creation__95__date.mdwn')
-rw-r--r--doc/bugs/argument_isn__39__t_numeric:_mixing_templates_and_creation__95__date.mdwn58
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]]