TurboGears2的LESS中间件
tgext.less的Python项目详细描述
关于tgext.less
LESS是一种动态样式表语言,它用动态行为扩展css 比如变量、混音、操作和函数。
less是一个旨在简化TurboGears2开发的中间件, less使用官方less编译器(lessc)将常规less文件转换为css,因此它目前 需要安装。
less基于alessandro molina的tgext.scss,是 在同一个许可证下(麻省理工学院)。
安装
tgext.less既可以从pypi安装,也可以从bitbucket安装:
easy_install tgext.less
您还需要安装less编译器,有关说明,请查看 服务器端使用部分。
启用tgext.less
使用tgext.less非常简单,您可以在
在此处使用自定义中间件包装您的基本TurboGears 2应用程序
带有lessmiddleware的应用程序
现在您只需将.less文件放入public/css中,它们将作为css使用。from tgext.less import LESSMiddleware
make_base_app = base_config.setup_tg_wsgi_app(load_environment)
def make_app(global_conf, full_stack=True, **app_conf):
app = make_base_app(global_conf, full_stack=True, **app_conf)
# Wrap your base TurboGears 2 application with custom middleware here
app = LESSMiddleware(app)
return app
缓存后端
您可以将缓存后端存储更改为任何可以序列化dict对象的dict类对象, 例如,可以通过将缓存对象传递给中间件构造函数来使用烧杯缓存:
from tgext.less import LESSMiddleware from tg import cache make_base_app = base_config.setup_tg_wsgi_app(load_environment) def make_app(global_conf, full_stack=True, **app_conf): app = make_base_app(global_conf, full_stack=True, **app_conf) # LESS with beaker cache backend app = LESSMiddleware(app, cache=cache) return app
Jinja2分机
less为jinja2模板提供和扩展,以便编译直接嵌入到模板上的less, 要激活它,只需将其添加到config/app_config.py文件中,如下所示:
from tgext.less.jinja import LessExtension base_config.jinja_extensions = [LessExtension]
现在您可以在模板中使用less标记:
<style type="text/css"> {% less "main" %} #header { h1 { font-size: 24pt; } } {% endless %} </style>
其中“main”是该较小部分的唯一标识符。
<> P>在使用MIXIN或其他未定义的标识符时,应考虑 标记编译失败的代码较少,可以使用@import语句包含一个文件,其中 案例您应该包括相对于静态文件目录的路径:<style type="text/css"> {% less "main" %} @include "css/bootstrap.less"; #round_box { .border-radius(5px); } {% endless %} </style>
您应该知道,当使用这个扩展名和less import语句时,输出可以得到 因为编译器当前不仅从导入的文件中获取必要的东西,而且 它只是简单地包含了整个文件(如示例中所示,将包括while引导库)。