mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 22:43:33 +08:00
DEV: Refactor plugin SCSS compilation (#12359)
This commit is contained in:
@ -1,12 +1,12 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'stylesheet/common'
|
||||
require 'stylesheet/importer'
|
||||
require 'stylesheet/functions'
|
||||
|
||||
module Stylesheet
|
||||
|
||||
class Compiler
|
||||
ASSET_ROOT = "#{Rails.root}/app/assets/stylesheets" unless defined? ASSET_ROOT
|
||||
|
||||
def self.compile_asset(asset, options = {})
|
||||
importer = Importer.new(options)
|
||||
@ -16,12 +16,16 @@ module Stylesheet
|
||||
filename = "theme_#{options[:theme_id]}.scss"
|
||||
file += options[:theme_variables].to_s
|
||||
file += importer.theme_import(asset)
|
||||
elsif Importer.special_imports[asset.to_s]
|
||||
filename = "theme_#{options[:theme_id]}.scss"
|
||||
file += " @import \"#{asset}\";"
|
||||
elsif plugin_assets = Importer.plugin_assets[asset.to_s]
|
||||
filename = "#{asset.to_s}.scss"
|
||||
options[:load_paths] = [] if options[:load_paths].nil?
|
||||
plugin_assets.each do |src|
|
||||
file += File.read src
|
||||
options[:load_paths] << File.expand_path(File.dirname(src))
|
||||
end
|
||||
else
|
||||
filename = "#{asset}.scss"
|
||||
path = "#{Stylesheet::Common::ASSET_ROOT}/#{filename}"
|
||||
path = "#{ASSET_ROOT}/#{filename}"
|
||||
file += File.read path
|
||||
|
||||
case asset.to_s
|
||||
@ -32,9 +36,7 @@ module Stylesheet
|
||||
file += importer.font
|
||||
when "wizard"
|
||||
file += importer.wizard_fonts
|
||||
end
|
||||
|
||||
if asset.to_s == Stylesheet::Manager::COLOR_SCHEME_STYLESHEET
|
||||
when Stylesheet::Manager::COLOR_SCHEME_STYLESHEET
|
||||
file += importer.import_color_definitions
|
||||
file += importer.import_wcag_overrides
|
||||
end
|
||||
@ -46,11 +48,10 @@ module Stylesheet
|
||||
def self.compile(stylesheet, filename, options = {})
|
||||
source_map_file = options[:source_map_file] || "#{filename.sub(".scss", "")}.css.map"
|
||||
|
||||
load_paths = [Stylesheet::Common::ASSET_ROOT]
|
||||
load_paths = [ASSET_ROOT]
|
||||
load_paths += options[:load_paths] if options[:load_paths]
|
||||
|
||||
engine = SassC::Engine.new(stylesheet,
|
||||
importer: Importer,
|
||||
filename: filename,
|
||||
style: :compressed,
|
||||
source_map_file: source_map_file,
|
||||
|
Reference in New Issue
Block a user