61 lines
3.0 KiB
Markdown
61 lines
3.0 KiB
Markdown
[[!tag wishlist]]
|
|
|
|
HTML::Template is an okay templating kit, but it lacks a lot of powerful
|
|
features and thus makes it rather hard to give an ikiwiki site a consistent
|
|
look. If you browse the templates provided in the tarball, you'll notice that
|
|
more than one of them contain the `<html>` tag, which is unnecessary.
|
|
|
|
Maybe it's just me, I also find HTML::Template cumbersome to use, due in part
|
|
to its use of capital letters.
|
|
|
|
Finally, the software seems unmaintained: the mailing list and searchable
|
|
archives linked from
|
|
<http://html-template.sourceforge.net/html_template.html#frequently%20asked%20questions>
|
|
are broken and the author has not replied to my query in months.
|
|
|
|
I would love to see ikiwiki use the [Template
|
|
Toolkit](http://template-toolkit.org/) as templating engine.
|
|
|
|
One major reason for TT is its use of slots, a concept I first encountered
|
|
with Zope Page Templates and never wanted to miss it again. Let me quickly
|
|
illustrate, using the HTML::Template syntax for simplicity. Traditionally,
|
|
templating is done with includes:
|
|
|
|
Page A Page B
|
|
<TMPL_INCLUDE header> <TMPL_INCLUDE header>
|
|
this is page A this is page B
|
|
<TMPL_INCLUDE footer> <TMPL_INCLUDE footer>
|
|
|
|
This involves four pages, and if you mistype "footer" on page B,
|
|
it'll be broken in potentially subtle ways.
|
|
|
|
Now look at the approach with slots:
|
|
|
|
MainTemplate
|
|
This is the header
|
|
<TMPL_SLOT content>
|
|
This is the footer
|
|
|
|
Page A Page B
|
|
<TMPL_USE MainTemplate> <TMPL_USE MainTemplate>
|
|
<TMPL_FILL content> <TMPL_FILL content>
|
|
This is page A This is page B
|
|
</TMPL_FILL> </TMPL_FILL>
|
|
</TMPL_USE> </TMPL_USE>
|
|
|
|
As soon as you think about more structure pages with various slots
|
|
to fill, I am sure you can see the appeal of that approach. If not,
|
|
here is some more documentation: <http://wiki.zope.org/ZPT/METALSpecification11>
|
|
|
|
I would be glad to volunteer time to make this switch happen, such as rewrite
|
|
the templates. I'd prefer not having to touch Perl though...
|
|
|
|
|
|
-----
|
|
|
|
Yes, Template::Toolkit is very powerful. But I think it's somehow overkill for a wiki. HTML::Template can keep things simple, though. --[weakish](http://weakish.int.eu.org/blog/)
|
|
|
|
I'd have to agree that Template::Toolkit is overkill and personally I'm not a fan, but it is very popular (there is even a book) and the new version (3) is alleged to be much more nimble than current version. --[[ajt]]
|
|
|
|
HTML::Template's HTML-like markup prevents me from editing templates in KompoZer or other WYSIWYG HTML editors. The editor tries to render the template markup rather than display it verbatim, and large parts of the template become invisible. A markup syntax that doesn't confuse editors (such as Template::Toolkit's "[% FOO %]") may promote template customization. The ability to replace the template engine would be within the spirit of ikiwiki's extensibility. --Rocco
|