用于django、jinja2、mako和tornado模板的pugjs语法模板适配器
pypugjs的Python项目详细描述
PyPugJS
pypugjs是PyJade的叉 的名称Jade更改为PugJS
附加免责声明:自从最初的pypugjs死后,我冒昧地让它活着,因为 自从开始使用jade编译器for node以来,我讨厌编写html,希望在django项目中继续使用它。 我将保留现有的非Django项目内部,但我不能支持任何其他,因为我不积极使用 它不会在可预见的未来出现龙卷风,Mako等支持将欢迎Tho!
PyPugJS是一个用于python的高性能PugJS端口,它将任何.pug源转换为不同的 模板语言(Django、Jinja2、Mako或Tornado)
公用事业
只需将转换输出到控制台:
pypugjs [-c django|jinja|mako|tornado] input.pug [output.html]
安装
要安装pypugjs:
pip install pypugjs
现在只要用`.pug`扩展名命名模板和这个pugjs编译器 剩下的就行了将不编译具有其他扩展名的任何模板 使用pypugjs编译器
语法
一般与pugjs节点模块相同(除了案例和其他一些未实现的功能) https://github.com/pugjs/pug/blob/master/README.md
示例
此代码
!!! 5 html(lang="en") headtitle=pageTitlescript(type='text/javascript'). if (foo) { bar() }bodyh1.title PugJS - node template engine #containerif youAreUsingPugJS 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">PugJS - node template engine</h1><divid="container"> {%if youAreUsingPugJS%} <p>You are amazing</p> {%else%} <p>Get on it!</p> {%endif%} </div></body></html>
将现有模板与HTML2Jade converter联机转换。
寄存器过滤器
如果要将函数注册为筛选器,只需 用pypugjs.register_filter("filter_name")
装饰函数importpypugjs@pypugjs.register_filter('capitalize')defcapitalize(text,ast):returntext.capitalize()
显著功能
添加条件类:
a(class={'active-class':True,'another':False})< P>定义像这样的混合函数:{EM1}$MIXIN /FUI.PUG < EEM>:
mixin foo(data) .foo {{ data }}
在模板中使用它们,如下所示:
include mixins/foo.pug div+foo(data)
测试
要启动测试套件,请启动以下命令:
make init make test
TODOs和BUG
见:https://github.com/kakulukia/pypugjs/issues
历史
5.1.2
- 添加了用于测试、安装、释放、linting的Makefile
- 添加了覆盖率报告
- 包装主要基于Cookiecutter包装
- 其他释放帮助程序
- 包装通过flake8测试
5.1.1
- 条件类功能(thx到paradoxxxzero) < >对“支持”的支持。
- Django 混合蛋白载体
- 重构django测试以实际使用文件加载程序
- 一些PEP8修复程序