[英]In HAML on Ruby on Rails, how to use the :sass filter?
如果在Ruby on Rails上使用HAML,那么
:sass
#someDiv
border: 3px dashed orange
周圍不會有任何<style>
標記。
然后
:css
:sass
#someDiv
border: 3px dashed orange
不會踢:sass
過濾器,但是
:css
:sass
#someDiv
border: 3px dashed orange
將啟用:sass
過濾器,但它位於<style>
標記之外。 那么如何使用:sass
過濾器? 我們可以在它周圍手動包裝<style>
,但是我們想要從sass生成css而不是在HAML文件中的<style>
標記內部生成css並不常見。
與此問題相關的文檔是在這里 ,在haml-lang.com和更詳細的解釋了sass-lang.com 。
我相信你缺少的是不應該在你的haml文件中使用sass。 它們應放在帶有.sass擴展名的public / stylesheets / sass中。 它們將被編譯為public / stylesheets中的.css文件,然后將其鏈接到您的布局中。
來自sas-lang.com鏈接:
例如,public / stylesheets / sass / main.scss將被編譯為public / stylesheets / main.css。
然后,您將使用stylesheet_link_tag幫助程序(或手動鏈接樣式表):
<%= style_sheet_link_tag 'main' %>
如果你真的需要在haml中使用sass, 這就是答案。 你不能在haml中嵌套過濾器。 你顯然需要做這樣的事情:
%style(type="text/css")
:sass
div
color: red
我相信這是haml google小組的原始回復。
從4.0.0開始 ,
:sass
過濾器現在將其輸出包裝在樣式標記中,新的:less
和:scss
過濾器也是如此。
在4.0.0之前,只需將其包裝為%style
:
%style
:sass
// so sassy! ;)
您也可以編寫自定義過濾器來生成樣式標記。
下面的示例定義了一個新的':csass'過濾器。
require "haml/filters"
module Haml::Filters::Csass
include Haml::Filters::Base
include Haml::Filters::Sass
lazy_require 'sass/plugin'
def render(text)
src = super
"<style>#{src}</style>"
end
end
所以你可以這樣做:)
:csass
#someDiv
border: 3px dashed orange
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.