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中的多个控制台或显示屏?   java Guava:是否可能不使用多重映射映射所有条目。索引()?   java转换键值对作为JSON响应的对象?   java读取一个文本文件,然后计算字母频率,并从高到低列出它们   java Apache CXF为客户提供SEI   java如何在SQL查询中“转义”整个字符串   将JavaServlet定义为主网页servlet注释不起作用   运行jar文件时发生java FileNotFoundException   java有两种加载FXML的方法;为什么一个比另一个更受欢迎?   java无法切换到timeofindia站点页面中的帧   java Firebase Firestore在连接丢失后需要很长时间才能重新连接   java使用来自SQLite的通用数据填充RecyclerView/ListView   当我使用offer和poll独占访问它时,java是LinkedList线程安全的吗?   如何使用包含Java命名空间的XPath检索XML数据?   Spring Boot的java Elasticsearch Searchguard配置   java数组中的数组值赋值?   java保存成功,但更新失败使用Jointable的多对多Spring JPA和额外列   kotlin什么是java。构造器。单()?   简单解析例程的java问题