2011-02-11 107 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