lib/minisyntax/highlighter/css.rb in minisyntax-0.1.1 vs lib/minisyntax/highlighter/css.rb in minisyntax-0.1.2

- old
+ new

@@ -1,10 +1,10 @@ module MiniSyntax module Highlighter module CSS def self.highlight(code) - code.gsub! %r(( *)((\$[a-z\-_]+):(.+?);|([_\*]?[a-z\-]+:)(("|[^&])+?);|@import (.+?);|(([\.\#]?[a-z0-9\-_&:]+([,\s]\s*[\.\#]?[a-z0-9\-_&:]+)*))(\s*)\{(.*?\n\1)\})|@media (.+?)\{|@(include|extend) (.+?);)im do + code.gsub! %r(( *)((\$[a-z\-_]+):(.+?);|([_\*]?[a-z\-]+:)(("|[^&])+?);|@import (.+?);|(([\.\#]?[a-z0-9\-_&:]+([,\s]\s*[\.\#]?[a-z0-9\-_&:]+)*))(\s*)\{(.*?\n\1)\})|@media (.+?)\{|@include (.+?);|@extend (.+?);)im do intendation = $1 if $3 %Q(#{intendation}<var>#{$3}</var>:#{highlight_value($4)};) elsif $5 %Q(#{intendation}<b>#{$5}</b>#{highlight_value($6)};) @@ -25,14 +25,17 @@ selector = %Q(<b><i>#{$10}</i></b>) %Q(#{intendation}#{selector}#{whitespace}{#{highlight(rules)}}) elsif $14 %Q(#{intendation}@<em>media</em> #{$14.gsub('and', '<em>and</em>')}{) elsif $15 - keyword = $15 - call = $16 - rule = call.gsub(/^([\.#]?[a-z\-_]+).*$/, '<b>\\1</b>') + call = $15 + mixin = call.gsub(/^([a-z\-_]+).*$/, '<b>\\1</b>') parameter = call.gsub(/^.*?\((.+?)\)/) { "(#{highlight_value($1)})" } - %Q(#{intendation}@<em>#{keyword}</em> #{rule}#{parameter};) + %Q(#{intendation}@<em>include</em> #{mixin}#{parameter};) + elsif $16 + call = $16 + rule = call.gsub(/^([\.#%]?[a-z\-_]+).*$/, '<b>\\1</b>') + %Q(#{intendation}@<em>extend</em> #{rule};) end end code.gsub! %r((<i>)?(//.*?$|/\*.*?\*/)) do comment = $2 if $1 == '<i>' or comment.gsub(%r(<q>(.*?)</q>), "\\1") =~ %r(</q>)