一个使用libsass编译SASS文件的django-compressor过滤器
项目描述
一个用于使用libsass编译Sass文件的django-compressor过滤器。
安装
从已设置django-compressor的Django项目开始
pip install django-libsass
并将django_libsass.SassCompiler添加到您的COMPRESS_PRECOMPILERS设置中
COMPRESS_PRECOMPILERS = ( ('text/x-scss', 'django_libsass.SassCompiler'), )
现在您可以在样式表中使用text/x-scss内容类型,并且它们可以无缝编译成CSS
{% load compress %} {% compress css %} <link rel="stylesheet" type="text/x-scss" href="{% static "myapp/css/main.scss" %}" /> {% endcompress %}
导入
在@import行中的相对路径按预期跟随
@import "../variables.scss";
此外,还会咨询Django的STATICFILES_FINDERS设置,并将所有可能的本地文件系统上的静态文件位置包含在搜索路径中。这使得可以在不同的应用程序之间导入文件
@import "myotherapp/css/widget.scss"
设置
以下设置可用于控制 django-libsass 的行为
LIBSASS_SOURCE_COMMENTS - 是否启用 SASS 源代码注释(添加关于源代码行的注释)。当 Django 的 DEBUG 为 True 时默认为 True,否则为 False。
LIBSASS_OUTPUT_STYLE - SASS 输出样式。选项有 'nested'、'expanded'、'compact' 和 'compressed',尽管截至 libsass 3.0.2 版本,只有 'nested' 和 'compressed' 被实现。默认为 'nested'。请参阅 SASS 文档中的输出样式。注意,django-compressor 的设置 也可能影响最终 CSS 的格式。
LIBSASS_CUSTOM_FUNCTIONS - 将自定义函数映射到 SASS 编译器中。默认提供了一个 static 函数,类似于 Django 的 static 模板标签。
LIBSASS_SOURCEMAPS - 启用将 sourcemaps 嵌入文件输出(默认:False)
LIBSASS_PRECISION - 数值精度的数字位数(默认:5)
LIBSASS_ADDITIONAL_INCLUDE_PATHS - @import 行中要识别的基础路径列表,除了 Django 识别的静态文件位置外
自定义函数
SASS 编译器可以通过在 LIBSASS_CUSTOM_FUNCTIONS 设置中定义的自定义 Python 函数进行扩展。默认提供一个 static 函数,用于生成静态路径到资源,如图片和字体
.foo { background: url(static("myapp/image/bar.png")); }
如果您的 STATIC_URL 为 ‘/static/’,这将渲染为
.foo { background: url("/static/myapp/image/bar.png")); }
为什么选择 django-libsass?
我们希望在 Django 项目中使用 Sass 而不引入任何外部(非 pip 安装)依赖项。(实际上,我们想使用 Less,但相同的论点同样适用……)有几个纯 Python 的 Sass 和 Less 实现,但我们发现它们在处理 @import 或不太常用的 CSS 功能(如媒体查询)方面,始终无法与参考编译器匹配。
libsass 是 Sass 引擎的成熟 C/C++ 版本,由 Sass 的原始创建者共同开发,我们可以合理地依赖它保持与参考 Sass 编译器的同步——并且,作为 C/C++,它很快。感谢 Hong Minhee 的 libsass-python 项目,它提供了 Python 绑定,并可以直接从 pip 安装。
django-libsass 基于 libsass-python 构建,使 @import 路径了解 Django 的 staticfiles 机制,并为 django-compressor 提供了一个直接使用 libsass-python API 的过滤器模块,从而避免了调用外部可执行文件进行编译的开销。
报告错误
请参阅 故障排除 页面以获取一些常见设置问题的帮助。
我不会提供支持以使 django-libsass 与您选择的 CSS 框架一起工作。如果您认为您已发现一个错误,请在报告之前尝试将其隔离为最小可重复测试用例——理想情况下,这将包括对 hello-django-libsass 示例项目的少量编辑/添加。如果您无法在几个独立的 SCSS 文件中演示问题,则几乎可以肯定这不是 django-libsass 的错误——任何与第三方 CSS 框架相关的错误报告都可能在没有进一步调查的情况下被关闭。
项目详细信息
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
构建分布
django-libsass-0.9.tar.gz的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | bfbbb55a8950bb40fa04dd416605f92da34ad1f303b10a41abc3232386ec27b5 |
|
MD5 | 54ec0a413b6f817b5b5deff78c92ec66 |
|
BLAKE2b-256 | d26cfe7c95536eed569960daf139726c8f83eaf8c4ae01d908c22d94d60f31c2 |
django_libsass-0.9-py3-none-any.whl的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 5234d29100889cac79e36a0f44207ec6d275adfd2da1acb6a94b55c89fe2bd97 |
|
MD5 | 532f8fc620dfe8005eaa19d887524cb7 |
|
BLAKE2b-256 | 1bee65935acc5a36c418fa17d5190a4aeb339cfdf98b6a93ca1c59134cf1e6aa |