Если у вас есть Рубин на вашей системе вы можете сделать это:
http://unixgods.org/~tilo/Ruby/Using_Variables_in_CSS_Files_with_Ruby_on_Rails.html
Это было сделано для Rails, но смотрите ниже, как изменить его, чтобы запустить его стоять в одиночестве.
Вы можете использовать этот метод, независимо от Rails, написав небольшой скрипт на Ruby-оболочки , который работает совместно с site_settings.rb и принимает ваши CSS-пути во внимание, и , которые вы можете позвонить каждый раз, когда вы хотите повторно -генерировать свой CSS (например, при запуске сайта)
Вы можете запустить Ruby практически в любой операционной системе, поэтому это должно быть достаточно независимым от платформы.
например. обертка: generate_CSS.rb (запустить этот сценарий всякий раз, когда вам нужно создать свой CSS)
#/usr/bin/ruby # preferably Ruby 1.9.2 or higher
require './site_settings.rb' # assuming your site_settings file is on the same level
CSS_IN_PATH = File.join(PATH-TO-YOUR-PROJECT, 'css-input-files')
CSS_OUT_PATH = File.join(PATH-TO-YOUR-PROJECT, 'static' , 'stylesheets')
Site.generate_CSS_files(CSS_IN_PATH , CSS_OUT_PATH)
метод generate_CSS_files в site_settings.rb затем должен быть изменен следующим образом:
module Site
# ... see above link for complete contents
# Module Method which generates an OUTPUT CSS file *.css for each INPUT CSS file *.css.in we find in our CSS directory
# replacing any mention of Color Constants , e.g. #SomeColor# , with the corresponding color code defined in Site::Color
#
# We will only generate CSS files if they are deleted or the input file is newer/modified
#
def self.generate_CSS_files(input_path = File.join(Rails.root.to_s , 'public' ,'stylesheets') ,
output_path = File.join(Rails.root.to_s , 'public' ,'stylesheets'))
# assuming all your CSS files live under "./public/stylesheets"
Dir.glob(File.join(input_path, '*.css.in')).each do |filename_in|
filename_out = File.join(output_path , File.basename(filename_in.sub(/.in$/, '')))
# if the output CSS file doesn't exist, or the the input CSS file is newer than the output CSS file:
if (! File.exists?(filename_out)) || (File.stat(filename_in).mtime > File.stat(filename_out).mtime)
# in this case, we'll need to create the output CSS file fresh:
puts " processing #{filename_in}\n --> generating #{filename_out}"
out_file = File.open(filename_out, 'w')
File.open(filename_in , 'r').each do |line|
if line =~ /^\s*\/\*/ || line =~ /^\s+$/ # ignore empty lines, and lines starting with a comment
out_file.print(line)
next
end
while line =~ /#(\w+)#/ do # substitute all the constants in each line
line.sub!(/#\w+#/ , Site::Color.const_get($1)) # with the color the constant defines
end
out_file.print(line)
end
out_file.close
end # if ..
end
end # def self.generate_CSS_files
end # module Site
Возможные DUP ... http://stackoverflow.com/questions/47487/create-a-variable-in-css-file-for-use-within-that-css-file – Eddie
HTTP://www.w3.org/People/Bos/CSS-variables – gavenkoa
Это может помочь: http://stackoverflow.com/questions/15831657/creating-css-global-variables-stylesheet-theme-management – Obsidian