Skip to content

zopefoundation/grokcore.chameleon

Repository files navigation

grokcore.chameleon

grokcore.chameleon makes it possible to use Chameleon page templates in Grok. For more information on Grok and Chameleon page templates see:

Contents

Note that future versions of grok will depend itself on grokcore.chameleon and configure it. In other words, chameleon-based templates will be available by default from that version on!

To use Chameleon page templates with Grok all you need is to install grokcore.chameleon as an egg and include its ZCML. The best place to do this is to make grokcore.chameleon a dependency of your application by adding it to your install_requires list in setup.cfg. If you used grokproject to create your application setup.py is located in the project root. It should look something like this:

install_requires=['setuptools',
                  'grokcore.chameleon',
                  # Add extra requirements here
                  ],

Note that if you use the allow-picked-versions = false directive in your project's buildout.cfg, you will have to add version number specifications for several packages to your [versions] section.

Then include grokcore.chameleon in your configure.zcml. If you used grokproject to create your application it's at src/<projectname>/configure.zcml. Add the include line after the include line for grok, but before the grokking of the current package. It should look something like this:

<include package="grok" />
<include package="grokcore.chameleon" />
<grok:grok package="." />

If you use autoInclude in your configure.zcml, you should not have to do this latter step.

Then run bin/buildout again. You should now see buildout saying something like (where version numbers can vary):

Getting distribution for 'grokcore.chameleon'.
Got grokcore.chameleon 0.5.

That's all. You can now start using Chameleon page templates in your Grok application.

grokcore.chameleon supports the Grok standard of placing templates in a templates directory, for example app_templates, so you can use Chameleon page templates by simply placing the Chameleon page templates in the templates directory, just as you would with regular ZPT templates.

Although chameleon templates themselves do not have a standard for the file extensions for templates, Grok needs to have an association between an filename extension and a template language implementation so it knows which implementation to use.

grokcore.chameleon declares to use the extension *.cpt (Chameleon page template) for Chameleon page templates.

You can also use Chameleon page templates inline. The syntax for this is:

from grokcore.chameleon.components import ChameleonPageTemplate
index = ChameleonPageTemplate('<html>the html code</html>')

Or if you use files:

from grokcore.chameleon.components import ChameleonPageTemplateFile
index = ChameleonPageTemplateFile(filename='thefilename.html')

About

Chameleon page template support for Grok

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages