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编译器,有关说明,请查看 服务器端使用部分。

http://www.lesscss.org/

启用tgext.less

使用tgext.less非常简单,您可以在 在此处使用自定义中间件包装您的基本TurboGears 2应用程序 带有lessmiddleware的应用程序

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

现在您只需将.less文件放入public/css中,它们将作为css使用。

缓存后端

您可以将缓存后端存储更改为任何可以序列化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引导库)。

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

推荐PyPI第三方库


热门话题
用户界面java,使用gui连接到另一台计算机/服务器的文件系统   运行sbt的ubuntu返回错误:“javahome需要<path>参数”   java如何在Android中处理许多ImageView而不出现内存问题?   查询中非法字符的java相同URL失败   安卓取消引用可能会产生“java”。lang.NullPointerException'   java中的indexoutofboundsexception“java.lang.ArrayIndexOutOfBoundsException”错误   xml Java将dom保存到文件>文件在程序结束后由另一个进程打开   Java的垃圾收集器是如何工作的?   Java如何筛选值(列表)   java处理字符串我怎样才能像在真实的书籍中一样在上面部分生成“小数字”呢?   java SonarQube是否有一个API来获取所有项目分析的一部分?   java startActivity(intent)什么都不做   JAVAutil。扫描器类Java   java如何从Firebase更新电子邮件?UpdateMail方法已被弃用   java Hibernate。如何正确组织带有注释的onetomany关系?   在java中获得卷标和驱动器号之间的映射(而不是FileSystemView)的解决方法是什么   java查找文件的路径