Документация Sass описывает, как добавить пользовательские функции и упоминает опцию :custom
для пользовательских переменных конфигурации.
Предположим, например, что вы хотите, чтобы функция отображала текущий год. Создайте файл lib/sass_year.rb
, содержащий следующее:
require 'sass'
require 'sass/script'
module Sass::Script::Functions
def year
Sass::Script::Value::String.new(Sass::Plugin.options[:custom][:year])
end
end
Затем в таком месте, как environment.rb
, включите и настройте его следующим образом:
require Rails.root+'lib/sass_year'
require 'sass/plugin'
Sass::Plugin.options[:custom] ||= {}
Sass::Plugin.options[:custom][:year] = Time.now.year.to_s
Теперь вы можете использовать функцию в коде Sass следующим образом:
div#copyright
content: "© 2001–#{year()} XYZ Corporation"
Вместо текущего года вы можете получить доступ к переменным среды или другим данным конфигурации. Обратите внимание, что без to_s
вы получите поврежденную строку, и при отладке периодически очищайте tmp/cache
для принудительного восстановления таблицы стилей.