使PYSCS在Django中的使用更加容易。
django-pyscss的Python项目详细描述
Django Pyscss
在django中使用pyscss的工具集合。
注意
此版本仅支持PysCS1.3.4及更高版本。对于PYSCS1.2支持, 您可以使用django pyscss的1.x系列。
安装
django pyscss支持django 1.4+,以及pythons 2和3。
您可以在pypi之外安装django pyscss:
pip install django-pyscss
为什么我们需要这个?
在django处理pyscs时,这个应用程序可以处理很多事情。它
- 覆盖导入系统以使用django的staticfiles应用程序。你这边走 可以从任何应用程序(或通过 无需麻烦。
- 将pyscss配置为与staticfiles应用程序一起使用其映像函数 (例如内联图像和精灵地图)。
- 它提供了一个django压缩器预编译过滤器类,这样您就可以 在Django压缩机上轻松使用PYSCS,无需对 炮弹。这还有一个额外的好处,即不需要配置pyscs 通过它的命令行参数 以及PysCss发出的气泡到您的进程的警告,以便您可以 实际上知道发生了什么。
手动渲染SCS
您可以从如下字符串中手动渲染SCS:
fromdjango_pyscssimportDjangoScssCompilercompiler=DjangoScssCompiler()compiler.compile_string(".foo { color: green; }")
您可以从如下文件中渲染SCS:
fromdjango_pyscssimportDjangoScssCompilercompiler=DjangoScssCompiler()compiler.compile('css/styles.scss')
文件需要能够被staticfiles finders定位,以便 使用。
DjangoScssCompiler类是scss.Compiler的一个子类 注入DjangoExtension。DjangoExtension是重写 导入机制。
DjangoScssCompiler还默认打开compassextension,如果 希望关闭此功能,请执行以下操作:
fromdjango_pyscssimportDjangoScssCompilerfromdjango_pyscss.extensions.djangoimportDjangoExtensioncompiler=DjangoScssCompiler(extensions=[DjangoExtension])
有关DjangoScssCompiler接受的选项列表,请参见 PyscssAPI documentation。
与django压缩机一起使用
Django Pyscs附带对Django压缩机的支持。你要做的就是 将其添加到您的COMPRESS_PRECOMPILERS设置中。:
COMPRESS_PRECOMPILERS=(# ...('text/x-scss','django_pyscss.compressor.DjangoScssFilter'),# ...)
然后你就可以像正常使用css一样使用scss。:
{%compresscss%}<linkrel="stylesheet"type="text/x-scss"href="{%static'css/styles.css'%}">{%endcompress%}
如果希望提供自己的编译器实例(例如 更改DjangoScssCompiler上的某些设置,可以对 DjangoScssFilter。:
# myproject/scss_filter.pyfromdjango_pyscssimportDjangoScssCompilerfromdjango_pyscss.compressorimportDjangoScssFilterclassMyDjangoScssFilter(DjangoScssFilter):compiler=DjangoScssCompiler(# Example configurationoutput_style='compressed',)# settings.pyCOMPRESS_PRECOMPILERS=(# ...('text/x-scss','myproject.scss_filter.MyDjangoScssFilter'),# ...)
运行测试
您可以通过运行来运行测试。
$ python setup.py test
请注意,这将自动收集到tmp/static/中 有些测试要求收集静态文件。
更改日志
2.0.2(2015-04-29)
- 修复了相对导入的错误[34,35 r1chardj0n3s]
2.0.1(2015-04-23)
- 显式地依赖于pathlib,而不是假设pyscs将需要它。[33]
- 修复了调试为false但尚未运行CollectStatic的情况(测试中常见)。
2.0.0(2015-04-22)
- 增加了对PysCS1.3和Python3的支持。
- 放弃对PysCSS 1.2的支持
升级路径
如果你只是使用django压缩机集成,你不必 升级任何东西。
如果您直接使用DjangoScss类,它将被替换为 DjangoScssCompiler类。编译css的api已更改为 好吧,例如,要从字符串编译,以前您会像 这个:
>>>fromdjango_pyscss.scssimportDjangoScss>>>compiler=DjangoScss()>>>compiler.compile(".foo { color: red; }")
现在的界面是这样的:
>>>fromdjango_pyscssimportDjangoScssCompiler>>>compiler=DjangoScssCompiler()>>>compiler.compile_string(".foo { color: red; }")
您在pyScss API documentation上阅读了有关新api的更多信息。
1.0.0-2014年2月11日
发布了django pyscss。