如何向Sass添加自定义函数(通过Sass :: Script :: Functions)?

时间:2012-09-10 17:08:31

标签: sass

我正在使用香草Sass(没有Compass / SUZY / Bourbon /等),而且我在找出放置* .rb文件的位置时遇到了麻烦。我不是Ruby程序员,但我确实找到了别人写的功能,可以满足我的需求。我试过搜索,但我得出的结果是死路一条。

官方文档本身没有提供任何线索,只提供如何创建自定义函数: http://sass-lang.com/docs/yardoc/Sass/Script/Functions.html#adding_custom_functions

sass styles.scss styles.css -r custom.rb

LoadError:尝试此解决方案时无法加载此类文件 - static / sass / modules / lib / custom.rb(尽管能够VI文件): http://www.seancolombo.com/2010/07/28/how-to-make-and-use-a-custom-sass-function/

这是我能找到的最接近的SO问题,但我没有使用Compass或Rails,所以解决方案对我没有任何意义: How do I load extensions to the Sass::Script::Functions module?

我想将自定义函数保存在我的模块目录中(其中包含我自己的自定义Bootstrap库)。但如果必须去其他地方,我可以忍受。

2 个答案:

答案 0 :(得分:2)

在Rails 4中,它非常简单。在config / initializer /文件夹中创建一个sass.rb文件,并将模块放在那里。

例如,使用此随机函数:https://gist.github.com/chriseppstein/1561650

module Sass::Script::Functions
  def random(*args)
    #...buncha code
  end
end

只需将其粘贴在config / initializers / sass.rb中,您就可以在任何.scss / sass样式表中访问它,例如:

.greet{
  position: absolute;
  top: random(200px);
  left: random(200px);
  height: random(200px);
  width: random(200px);
  background-color: blue;

}

答案 1 :(得分:1)

请尝试按照第二个链接中的说明进行操作,但请指定ruby文件的绝对路径。在我的机器上,如果给出相对路径,看起来SASS在查找文件时遇到问题。