module StaticMatic
module Helpers
module TagHelper
self.extend self
# Generates HTML tags:
#
# tag(:br) ->
# tag(:a, :href => 'test.html') { "Test" } -> Test
#
def tag(name, options = {}, &block)
options[:id] ||= options[:name] if options[:name]
output = "<#{name}"
options.keys.sort { |a, b| a.to_s <=> b.to_s }.each do |key|
output << " #{key}=\"#{options[key]}\"" if options[key]
end
if block_given?
output << ">"
output << yield
output << "#{name}>"
else
format = @staticmatic.configuration.engine_options['haml'][:format]
if format.nil? || format == :xhtml
output << "/>"
else
output << ">"
end
end
output
end
end
end
end