如何将新的模板语言插入到 repoze.bfg 中?

发布于 2024-08-15 20:24:21 字数 66 浏览 5 评论 0原文

我需要实现什么才能向 repoze.bfg 添加新的模板语言?框架会发送我的插件绝对路径或包相对路径,还是两者都发送?

What do I need to implement to add a new templating language to repoze.bfg? Will the framework send my plugin absolute paths or package relative paths, or both depending?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

甜中书 2024-08-22 20:24:21

该软件包位于 http://svn.repoze.org/ repoze.bfg.jinja2/trunk/repoze/bfg/jinja2/ 为 BFG 提供附加 Jinja2 绑定。基本上,您确实创建了一个类似的包,然后允许人们将其连接到他们的系统中。

集成有两个级别。第一个只是导入级集成,允许人们执行以下操作:

from my.template.system import render_template_to_response

def aview(request):
return render_template_to_response('some/relative/path.myt')

模仿 repoze.bfg.jina2 中的 render_template* 方法,将它们替换为您喜欢的模板系统的类似方法将给您这个。

集成的另一个级别是允许您的模板系统用作“渲染器”。例如,这允许:

@bfg_view(renderer="some/relative/path.myt")
def aview(请求):
return {'a':1}

为此,请模仿 repoze.bfg.jinja2 中的“renderer_factory”函数,然后让人们通过“config.add_renderer(renderer_factory, '.myt')”在其配置中添加此渲染器(强制)或将您随包裹一起发货的 ZCML 文件包含在他们的 ZCML 中。

The package at http://svn.repoze.org/repoze.bfg.jinja2/trunk/repoze/bfg/jinja2/ provides add-on Jinja2 bindings for BFG. Basically, you do create a package like that, then allow folks to wire it into their systems.

There are two levels of integration. The first is just an import-level integration that would allow people to do something like:

from my.template.system import render_template_to_response

def aview(request):
return render_template_to_response('some/relative/path.myt')

Aping the render_template* methods in repoze.bfg.jina2, replacing them with analogues for your favored template system would give you this.

The other level of integration is to allow your templating system to be used as a "renderer". This permits, for example:

@bfg_view(renderer="some/relative/path.myt")
def aview(request):
return {'a':1}

To do this, ape the "renderer_factory" function in repoze.bfg.jinja2, and then get folks to add this renderer in their configuration via "config.add_renderer(renderer_factory, '.myt')" (imperatively) or by including the ZCML file you ship along with your package in their ZCML.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文