WebAssets的Compass完整集成

webassets_compassconnector的Python项目详细描述


与Compass for Python3应用程序无缝集成。

要获得全面的体验,您必须使用带有https://github.com/miracle2k/webassets/pull/240https://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
  • 卖主:一个相对路径,应该只使用指南针插件(如ZURB基金会,蓝图)
  • 绝对路径:以/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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何使用从PreparedStatement返回的RowId。getGeneratedKeys()?   selenium chrome驱动程序中下一个网站url的java空白页   java如何将参数化匿名类转换为lambda?   java JUnit在AfterClass上获取测试结果   java将动态XML/JSON内容与静态标记化负载进行比较,并检索标记值   java共享一个需要数据持久性的项目[数据库]   java在调用方法时获取意外的参数类型。getParameterTypes()   java如何用jdbc在swing中用另一个字段替换外键?   需要java Jersey Tomcat CDI依赖项解释   java如何生成UML图   java如何编写Jersey rest服务可以通过给定的spring代码访问   SpringMaven存储库管理器Nexus与Java依赖项的Artifactory   java将包从另一个项目导入eclipse中的当前项目   加密Java使用密码加密文件