module MiniSyntax::Highlighter::Haml

Public Class Methods

highlight(code) click to toggle source
# 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