Module: MiniSyntax::Highlighter::Haml

Defined in:
lib/minisyntax/highlighter/haml.rb

Class Method Summary collapse

Class Method Details

.highlight(code) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/minisyntax/highlighter/haml.rb', line 4

def self.highlight(code)
  code.gsub! /^( *)(%[a-z1-9\-]+)?(([\.\#][a-z\-_]+)*)((<)?(>)?&?)(=.+?$)?/i do
    result = $1 || ''
    tag = $2
    classes_and_id = $3
    options = $5
    ruby = $8
    result << %Q(<em>#{tag}</em>) if tag
    result << %Q(<b>#{classes_and_id}</b>) unless classes_and_id.empty?
    result << options if options
    result << MiniSyntax.highlight(ruby, :ruby) if ruby
    result
  end
  code.gsub! /^((  )*)(-(.+?))$/ do
    %Q(#{$1}-#{MiniSyntax.highlight($4, :ruby)})
  end
  code
end