def image(target, type, node)
if type == 'icon' && (node.document.attr? 'icons', 'font')
style_class = "icon-#{target}"
if node.attr? 'size'
style_class = "#{style_class} icon-#{node.attr 'size'}"
end
if node.attr? 'rotate'
style_class = "#{style_class} icon-rotate-#{node.attr 'rotate'}"
end
if node.attr? 'flip'
style_class = "#{style_class} icon-flip-#{node.attr 'flip'}"
end
title_attribute = (node.attr? 'title') ? %Q( title="#{node.attr 'title'}") : nil
img = %Q(<i class="#{style_class}"#{title_attribute}></i>)
elsif type == 'icon' && !(node.document.attr? 'icons')
img = "[#{node.attr 'alt'}]"
else
if type == 'icon'
resolved_target = node.icon_uri target
else
resolved_target = node.image_uri target
end
attrs = ['alt', 'width', 'height', 'title'].map {|name|
if node.attr? name
%Q( #{name}="#{node.attr name}")
else
nil
end
}.join
img = %Q(<img src="#{resolved_target}"#{attrs}>)
end
if node.attr? 'link'
img = %Q(<a class="image" href="#{node.attr 'link'}"#{(node.attr? 'window') ? " target=\"#{node.attr 'window'}\"" : nil}>#{img}</a>)
end
if node.role?
style_classes = %Q(#{type} #{node.role})
else
style_classes = type
end
style_attr = (node.attr? 'float') ? %Q( style="float: #{node.attr 'float'}") : nil
%Q(<span class="#{style_classes}"#{style_attr}>#{img}</span>)
end