跳转到主要内容

使在Django中使用PySCSS变得更容易。

项目描述

django-pyscss

一组工具,旨在简化在Django中使用pyScss。

Build Status Coverage Status

安装

django-pyscss支持Django 1.4+和Python 2和3。

您可以从PyPI安装django-pyscss

pip install django-pyscss

我们为什么需要这个?

此应用程序在处理Django中的pyScss时简化了许多事情。它

  • 重写了导入系统,以使用Django的staticfiles应用程序。这样,您可以轻松地从任何应用程序(或任何可由STATICFILES_FINDERS查找的文件)导入SCSS文件,而无需任何麻烦。

  • 配置pyScss以使用staticfiles应用程序的图像功能(例如inline-image和sprite-map)。

  • 它提供了一个django-compressor预编译过滤器类,这样您就可以轻松地将pyScss与django-compressor一起使用,而无需打开shell。这还有一个额外的优点,即无需通过命令行参数配置pyScss,并且使pyScss发出的异常和警告能够冒泡到您的进程,这样您就可以真正了解发生了什么。

手动渲染SCSS

您可以从如下字符串手动渲染SCSS:

from django_pyscss import DjangoScssCompiler

compiler = DjangoScssCompiler()
compiler.compile_string(".foo { color: green; }")

您可以从如下文件渲染SCSS:

from django_pyscss import DjangoScssCompiler

compiler = DjangoScssCompiler()
compiler.compile('css/styles.scss')

文件需要能被静态文件查找器定位,才能被使用。

DjangoScssCompiler 类是 scss.Compiler 的子类,它注入了 DjangoExtensionDjangoExtension 是用来覆盖导入机制的。

DjangoScssCompiler 默认开启 CompassExtension,如果您想关闭它,可以这样操作

from django_pyscss import DjangoScssCompiler
from django_pyscss.extensions.django import DjangoExtension

compiler = DjangoScssCompiler(extensions=[DjangoExtension])

有关 DjangoScssCompiler 接受的选项列表,请参阅 pyScss API 文档

与 django-compressor 一起使用

django-pyscss 内置了对 django-compressor 的支持。您只需将其添加到您的 COMPRESS_PRECOMPILERS 设置中。

COMPRESS_PRECOMPILERS = (
    # ...
    ('text/x-scss', 'django_pyscss.compressor.DjangoScssFilter'),
    # ...
)

然后您就可以像使用 CSS 一样使用 SCSS。

{% compress css %}
<link rel="stylesheet" type="text/x-scss" href="{% static 'css/styles.css' %}">
{% endcompress %}

如果您想提供自己的编译器实例(例如,如果您想更改 DjangoScssCompiler 上的某些设置),可以子类化 DjangoScssFilter

# myproject/scss_filter.py
from django_pyscss import DjangoScssCompiler
from django_pyscss.compressor import DjangoScssFilter

class MyDjangoScssFilter(DjangoScssFilter):
    compiler = DjangoScssCompiler(
        # Example configuration
        output_style='compressed',
    )

# settings.py
COMPRESS_PRECOMPILERS = (
    # ...
    ('text/x-scss', 'myproject.scss_filter.MyDjangoScssFilter'),
    # ...
)

运行测试

您可以通过运行以下命令来运行测试。

$ python setup.py test

请注意,这将自动收集到 tmp/static/,因为一些测试需要收集静态文件。

变更日志

2.0.3 (未发布)

  • 尚未有任何更改。

2.0.2 (2015-04-29)

  • 修复了相对导入的 bug [#34, #35 r1chardj0n3s]

2.0.1 (2015-04-23)

  • 显式依赖 pathlib,而不是假设 pyScss 将需要它。[#33]

  • 修复了 DEBUG 为 False 但未运行 collectstatic 的情况(在测试中很常见)。

2.0.0 (2015-04-22)

  • 添加了对 pyScss 1.3 和 Python 3 的支持。

  • 放弃对 pyScss 1.2 的支持

升级路径

如果您仅使用 django-compressor 集成,则无需升级任何内容。

如果您直接使用 DjangoScss 类,它已被 DjangoScssCompiler 类替换。编译 CSS 的 API 也已更改,例如,要从字符串编译,以前您会这样做

>>> from django_pyscss.scss import DjangoScss
>>> compiler = DjangoScss()
>>> compiler.compile(".foo { color: red; }")

现在接口如下所示

>>> from django_pyscss import DjangoScssCompiler
>>> compiler = DjangoScssCompiler()
>>> compiler.compile_string(".foo { color: red; }")

您可以在 pyScss API 文档 上了解更多关于新 API 的信息。

1.0.0 - 2014-02-11

发布 django-pyscss。

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解有关 安装软件包 的更多信息。

源代码分布

django-pyscss2-3.0.0.tar.gz (16.5 kB 查看散列)

上传时间

构建分布

django_pyscss2-3.0.0-py3-none-any.whl (7.8 kB 查看散列)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面