用于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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java同步块与私有不可变对象和同步方法的差异   OracleDataSource、OracleUCP、Commons DBCP和Tomcat连接池之间的java差异?   java在文本文件中写入对象   java访问web服务   如何用java代码并行读取拼花地板文件   spring是否可以将运行时未知的Avro消息转换为特定的Java类   具有复杂对象的java Spring数据MongoDB addToSet()   java ArrayList是否删除元素,是否向下移动列表?   Vaadin中按钮的java多行标题不起作用   java为什么要使用@PropertySource而不是PropertyPlaceHolderConfigure?   java如何检查网站链接是否有数据(图片)或网站是否无效?   java如何禁用对jsp页面的直接访问?   用java实现matlab递归文件夹读取。伊奥。文件   为什么是java。伊奥。FileDescriptor的构造函数是公共的吗?   在java中关闭扫描程序时无法访问的代码?   搜索Java模拟退火接受概率