用于django、jinja2、mako和tornado模板的jade语法模板适配器
pyjade的Python项目详细描述
pyjade是python的jade lang的一个高性能端口,它将任何.jade源代码转换为每个模板语言(django、jinja2、mako或tornado)。
实用程序
只需将转换输出到控制台:
pyjade [-c django|jinja|mako|tornado] input.jade [output.html]
安装
首先,您必须这样做:
pip install pyjade
或:
python setup.py install
现在只要用`.jade'扩展名命名模板和这个jade编译器 剩下的就行了。将不编译具有其他扩展名的任何模板 使用Pyjade编译器。
django
在settings.py中,将加载程序添加到模板中,如下所示:
TEMPLATES=[{'BACKEND':'django.template.backends.django.DjangoTemplates','DIRS':[],'OPTIONS':{'context_processors':['django.template.context_processors.debug','django.template.context_processors.request','django.contrib.auth.context_processors.auth','django.contrib.messages.context_processors.messages','django.core.context_processors.request'],'loaders':[# PyJade part: ##############################('pyjade.ext.django.Loader',('django.template.loaders.filesystem.Loader','django.template.loaders.app_directories.Loader',))],'builtins':['pyjade.ext.django.templatetags'],# Remove this line for Django 1.8},},]
金贾2
只需将pyjade.ext.jinja.pyjade extension添加为扩展名
jinja_env=Environment(extensions=['pyjade.ext.jinja.PyJadeExtension'])
Mako
只需将pyjade.ext.mako.preprocessor添加为预处理器
frompyjade.ext.makoimportpreprocessorasmako_preprocessormako.template.Template(haml_source,preprocessor=mako_preprocessor)
烧瓶
只需将pyjade.ext.jinja.pyjade extension添加为应用程序环境的扩展
app.jinja_env.add_extension('pyjade.ext.jinja.PyJadeExtension')
金字塔
调整“your_project/uu init_uu.py”,并在main()函数中的某处添加以下行
config.include('pyjade.ext.pyramid')
龙卷风模板
在导入tornado.template后附加此文件
fromtornadoimporttemplatefrompyjade.ext.tornadoimportpatch_tornadopatch_tornado()(...)
语法
与jade node.js模块完全相同(除了未实现的案例) https://github.com/visionmedia/jade/blob/master/README.md
示例
此代码
!!! 5 html(lang="en") headtitle=pageTitlescript(type='text/javascript') if (foo) { bar() }bodyh1.title Jade - node template engine #containerif youAreUsingJade p You are amazing elsep Get on it!
转换为
<!DOCTYPE html><htmllang="en"><head><title>{{pageTitle}}</title><scripttype='text/javascript'>if(foo){bar()}</script></head><body><h1class="title">Jade - node template engine</h1><divid="container"> {%if youAreUsingJade%} <p>You are amazing</p> {%else%} <p>Get on it!</p> {%endif%} </div></body></html>
寄存器过滤器
如果要将函数注册为筛选器,只需 用pyjade.register_filter("filter_name")
装饰函数importpyjade@pyjade.register_filter('capitalize')defcapitalize(text,ast):returntext.capitalize()
测试
必须安装nose软件包。 您可以使用:
./test.sh