tasks/converter/less_conversion.rb in bootstrap-sass-3.3.7 vs tasks/converter/less_conversion.rb in bootstrap-sass-3.4.0

- old
+ new

@@ -65,10 +65,11 @@ log_status ' Converting LESS files to Scss:' files.each do |name, file| log_processing name # apply common conversions file = convert_less(file) + file = replace_all file, %r{// stylelint-disable.*?\n+}, '', optional: true if name.start_with?('mixins/') file = varargify_mixin_definitions(file, *VARARG_MIXINS) %w(responsive-(in)?visibility input-size text-emphasis-variant bg-variant).each do |mixin| file = parameterize_mixin_parent_selector file, mixin if file =~ /#{mixin}/ end @@ -124,14 +125,11 @@ when 'tables.less' file = replace_all file, /(@include\s*table-row-variant\()(\w+)/, "\\1'\\2'" when 'thumbnails.less', 'labels.less', 'badges.less', 'buttons.less' file = extract_nested_rule file, 'a&' when 'glyphicons.less' - file = replace_rules(file, /\s*@font-face/) { |rule| - rule = replace_all rule, /(\$icon-font(?:-\w+)+)/, '#{\1}' - replace_asset_url rule, :font - } + file = replace_rules(file, /\s*@font-face/) { |rule| replace_asset_url rule, :font } when 'type.less' file = apply_mixin_parent_selector(file, '\.(text|bg)-(success|primary|info|warning|danger)') # .bg-primary will not get patched automatically as it includes an additional rule. fudge for now file = replace_all(file, " @include bg-variant($brand-primary);\n}", "}\n@include bg-variant('.bg-primary', $brand-primary);") end @@ -323,14 +321,14 @@ def replace_file_imports(less, target_path = '') less.gsub %r([@\$]import ["|']([\w\-/]+).less["|'];), %Q(@import "#{target_path}\\1";) end - def replace_all(file, regex, replacement = nil, &block) + def replace_all(file, regex, replacement = nil, optional: false, &block) log_transform regex, replacement new_file = file.gsub(regex, replacement, &block) - raise "replace_all #{regex}, #{replacement} NO MATCH" if file == new_file + raise "replace_all #{regex}, #{replacement} NO MATCH" if !optional && file == new_file new_file end # @mixin a() { tr& { color:white } } # to: @@ -463,11 +461,11 @@ # change Microsoft filters to Sass calling convention def replace_ms_filters(file) log_transform file.gsub( - /filter: e\(%\("progid:DXImageTransform.Microsoft.gradient\(startColorstr='%d', endColorstr='%d', GradientType=(\d)\)",argb\(([\-$\w]+)\),argb\(([\-$\w]+)\)\)\);/, + /filter: e\(%\("progid:DXImageTransform.Microsoft.gradient\(startColorstr='%d', endColorstr='%d', GradientType=(\d)\)", ?argb\(([\-$\w]+)\), ?argb\(([\-$\w]+)\)\)\);/, %Q(filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='\#{ie-hex-str(\\2)}', endColorstr='\#{ie-hex-str(\\3)}', GradientType=\\1);) ) end # unwraps topmost rule block @@ -509,10 +507,11 @@ end def replace_escaping(less) less = less.gsub(/~"([^"]+)"/, '\1').gsub(/~'([^']+)'/, '\1') # Get rid of ~"" escape less.gsub!(/\$\{([^}]+)\}/, '$\1') # Get rid of @{} escape - less.gsub!(/"([^"\n]*)(\$[\w\-]+)([^"\n]*)"/, '"\1#{\2}\3"') # interpolate variable in string, e.g. url("$file-1x") => url("#{$file-1x}") + # interpolate variables in strings, e.g. url("$file-1x") => url("#{$file-1x}") + less.gsub!(/"[^"\n]*"/) { |str| str.gsub(/\$[^"\n$.\\]+/, '#{\0}') } less.gsub(/(\W)e\(%\("?([^"]*)"?\)\)/, '\1\2') # Get rid of e(%("")) escape end def insert_default_vars(scss) log_transform