2011-02-11 82 views
4

我已经习惯了现在和指南针和Haml一起工作,这非常棒。但是,如果两者能够更紧密地合作,这将是非常好的。这似乎是不可能的,但是我可能忽略了它,或者没有正确地搜索。HAML&SASS/COMPASS:可以共享变量吗?

我想我的意思是这样:

一般变量文件:

$container-id = "container" 
$primary-column-id = "navbar" 

Haml的文件:

!!! 5 
%html(lang="en") 
    %head 
    %title 
    %body 
    #{$container-id} 
     %section#{$primary-column-id} 

罗盘文件:

#{$container-id} { 
    width: 900px; 
} 

#{$primary-column-id} { 
    width: 400px; 
} 
+0

我固定的格式。请确保我得到了你想要的缩进。 (添加四个空格可以工作,您可能只是没有留下空白行;使用选择中的“{...}”按钮可以自动缩进。) – Phrogz 2011-02-12 03:43:53

回答

4

从我的研究和用法,这是目前不支持(没有某种自定义外部解决方案)。我同意在理论上这将是一个非常棒的功能,但我认为它不存在,因为separation of concerns

例如,特定的Haml文件在编译时必须知道与其他特定Sass文件的链接,并选取声明的变量。这确实发生Sass < - - > Sass,通过partials。但是,有了上面的想法 - >标记(Haml)与样式(Sass/Scss)有些混淆。虽然他们互相引用 - 他们有不同的目的。例如DOM中的ID是对象的属性,而在样式表中,ID是对象的选择器

一个框架(如Compass)在理论上可以实现类似这样的效果,因为它可以查看项目 - 但是为变量声明或其他东西配置统一的项目范围配置文件(无论是Sass还是Haml)可能更合适。

This'd是一个很大的问题得到克里斯Eppstein的意见上:https://stackoverflow.com/users/41221/chriseppstein