跳转到主要内容

Grok中的Genshi集成

项目描述

更新 2013-05-27:我不再使用这个项目,如果有人想接管维护,请给我发邮件。

megrok.genshi

megrok.genshi使得在Grok中使用Genshi模板成为可能。由于使用不足,该项目不再维护,但仍可以作为如何在Grok中进行模板集成的示例。

有关Grok和Genshi的更多信息,请参阅

需求

  • Genshi。已与v 0.5.1进行测试。

  • Grok v0.14或更高版本。已与0.14进行测试。

安装

要在Grok下使用Genshi,您需要安装megrok.genshi作为egg并包含其zcml。最好的方法是将其作为您的应用程序的依赖项添加到setup.cfg中的install_requires列表,使其成为megrok.genshi。如果使用grokprojet创建应用程序,则setup.cfg位于项目根目录。它看起来可能如下所示

install_requires=['setuptools',
                  'grok',
                  'megrok.genshi',
                  # Add extra requirements here
                  ],

然后在您的 configure.zcml 中包含 megrok.genshi。如果您使用 grokproject 创建了应用程序,它位于 src/<项目名称>/configure.zcml。在包含 grok 的行之后添加包含行,但在当前包的 grokking 之前。它应该看起来像这样

<include package="grok" />
<include package="megrok.genshi" />
<grok:grok package="." />

然后再次运行 bin/buildout。现在您应该看到 buildout 输出类似的内容

Getting distribution for 'megrok.genshi'.
Got megrok.genshi 1.0.

这就完成了。现在您可以在 Grok 应用程序中使用 Genshi 了!

使用方法

megrok.genshi 支持将模板放置在模板目录中(例如 app_templates),因此您可以通过将 Genshi 模板放置在模板目录中来使用 Genshi,就像使用 ZPT 模板一样。尽管 Genshi 本身没有为 Genshi 模板设置标准文件扩展名,但 Grok 需要一个扩展名和类型之间的关联,以便知道每个模板的类型。megrok.genshi 将 .g 扩展名定义为 Genshi HTML 模板,.gt 扩展名定义为 Genshi 文本模板。Genshi 也可以包含模板,尽管您可以使用任何扩展名,但我们建议您使用 .gi 扩展名来包含任何模板,以避免与其他模板语言发生冲突。

您还可以将 Genshi 模板内联使用。语法如下

from megrok.genshi.components import GenshiMarkupTemplate, GenshiTextTemplate
index = GenshiMarkupTemplate('<html>the html code</html>')
index = GenshiMarkupTemplate('Text templates')

或者如果您使用文件

from megrok.genshi.components import GenshiMarkupTemplate, GenshiTextTemplate
index = GenshiMarkupTemplate(filename='thefilename.html')
index = GenshiMarkupTemplate(filename='thefilename.txt')

作者

变更记录

版本 1.0

  • 支持 Grok 0.14。(Paul Wilson)

版本 0.9

  • 首次发布

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页