WebAssets的Compass完整集成
webassets_compassconnector的Python项目详细描述
与Compass for Python3应用程序无缝集成。
要获得全面的体验,您必须使用带有https://github.com/miracle2k/webassets/pull/240和https://github.com/miracle2k/webassets/pull/241补丁的webassets。 尤其是如果你用的是Python3.3。或者,您可以从https://github.com/glorpen/webassets(branchmymaster)安装webassets fork。
使用未修补的版本可能导致错误的依赖项跟踪(即使子资源已更改,父资源也可能无法编译)。
它解决了什么问题?
- 为Compass文件添加加载路径命名空间-以便您可以跨应用程序导入或使用其他包中的资产
- 您不需要已安装的资产-Connector为您的软件包使用文件
- 在修改其任何依赖项时重新编译/更新资产-是另一个导入、内联字体文件还是只是width: image-width(@path/myimage.png);
如何安装
- 首先,您需要安装ruby connector gem:
gem install compass-connector
- 然后安装过滤器:
pip install webassets_compassconnector
虚拟路径
有三种“路径”:
- 应用程序,以@开头,可能看起来像@public/images/asset.png
- 绝对路径:以/、http://等开头,并且不会被连接器更改
一些示例:
@import"@package/scss/settings";/* will resolve to eg. .../package/scss/_settings.scss */@import"foundation";/* will include foundation scss from your compass instalation */width:image-size("@package/public/images/my.png");background-image:image-url("@package/public/images/my.png");//willgenerateurlwithprefixesgivenbyWebassets@import"@package/sprites/*.png";//willimportspriteslocatedinpackage/sprites/(generatedurlwillbewithappliedWebassetprefixes)
用法
独立示例:
fromwebassetsimportEnvironment,Bundlefromwebassets_cc.filterimportCompassConnectorFilterenv=Environment("/some/path/out",'/media-prefix')env.config["compass_bin"]="/path/to/compass/bin"env.config["vendor_path"]="vendor"#it is relative path prepended in vendor urls#if using zurb_foundation python packageenv.config["compass_imports"]=[pkg_resources.resource_filename("zurb_foundation","scss")]#if using zurb-foundation ruby packageenv.config["compass_plugins"]={"zurb-foundation":">4"}env.append_path("/some/path/assets","/")env.append_path("/some/path/vendors","/vendors")scss=Bundle('scss/my.scss',filters=CompassConnectorFilter,output='my.css')
使用webassets、pyramid和jinja2:
config=Configurator()config.include('pyramid_jinja2')config.add_settings({"webassets.base_dir":join(root_dir,"cache","assets"),"webassets.base_url":"/static"})config.include('pyramid_webassets')config.add_route('show','/')config.add_static_view(name='static',path=join(root_dir,"cache","assets"))scss=Bundle('package:resources/assets/app.scss',filters=CompassConnectorFilter,output='app.css')config.add_webasset('styles',scss)config.add_jinja2_extension('webassets.ext.jinja2.AssetsExtension')assets_env=config.get_webassets_env()assets_env.config["compass_bin"]="/home/user/.gem/ruby/1.9.1/bin/compass"assets_env.config["compass_plugins"]={"zurb-foundation":">4"}config.get_jinja2_environment().assets_environment=assets_env