KID to Genshi migration
To change a KID template into a Genshi format, all you have to do is: 1. in all templates except SiteTemplate replace:
<?python kid.enable_import() kid.reloadbases=True import SiteTemplate ?> <html py:layout="SiteTemplate" xmlns:py="http://purl.org/kid/ns#" xmlns="http://www.w3.org/1999/xhtml">
with:
<html xmlns:py="http://genshi.edgewall.org/" xmlns:xi="http://www.w3.org/2001/XInclude">
2. Add:
<xi:include href="SiteTemplate.html" />
to every template file except SiteTemplate.html .
3. In SiteTemplate, change:
<?python kid.reloadbases=True ?> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#">
to:
<html xmlns:py="http://genshi.edgewall.org/" py:strip="">
4. wrap all turbogears widget calls in ET(), for example:
${ET(form.display(value=entry, submit_text=_(u'Publish'), action=tg.url('/add_article'), form_attrs=dict(id='articleform'), tags=tags))}
And that's it. Hopefully, this concludes the mind-numbing template translations for now. Next step: using ngettext() for things like "There are N Comments for this article".
Migrating this blog from KID to Genshi seems to have been easy enough.
To change a KID template into a Genshi format, all you have to do is: 1. in all templates except SiteTemplate replace:
<?python kid.enable_import() kid.reloadbases=True import SiteTemplate ?> <html py:layout="SiteTemplate" xmlns:py="http://purl.org/kid/ns#" xmlns="http://www.w3.org/1999/xhtml">
with:
<html xmlns:py="http://genshi.edgewall.org/" xmlns:xi="http://www.w3.org/2001/XInclude">
2. Add:
<xi:include href="SiteTemplate.html" />
to every template file except SiteTemplate.html .
3. In SiteTemplate, change:
<?python kid.reloadbases=True ?> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#">
to:
<html xmlns:py="http://genshi.edgewall.org/" py:strip="">
4. wrap all turbogears widget calls in ET(), for example:
${ET(form.display(value=entry, submit_text=_(u'Publish'), action=tg.url('/add_article'), form_attrs=dict(id='articleform'), tags=tags))}
And that's it. Hopefully, this concludes the mind-numbing template translations for now. Next step: using ngettext() for things like "There are N Comments for this article".