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>)