%span{:class=>[@type, role], :style=>((attr? :float) ? "float: #{attr :float}" : nil)}<
  - if @type == 'icon' && (@document.attr? :icons, 'font')
    - style_class = ["icon-#{@target}"]
    - style_class << "icon-#{attr :size}" if attr? :size
    - style_class << "icon-rotate-#{attr :rotate}" if attr? :rotate
    - style_class << "icon-flip-#{attr :flip}" if attr? :flip
    - if attr? :link
      %a.image{:href=>(attr :link), :target=>(attr :window)}
        %i{:class=>style_class, :title=>(attr :title)}
    - else
      %i{:class=>style_class, :title=>(attr :title)}
  - elsif @type == 'icon' && !(@document.attr? :icons)
    - if attr? :link
      %a.image{:href=>(attr :link), :target=>(attr :window)}
        [#{attr :alt}]
    - else
      [#{attr :alt}]
  - else
    - src = (@type == 'icon' ? (icon_uri @target) : (image_uri @target))
    - if attr? :link
      %a.image{:href=>(attr :link), :target=>(attr :window)}
        %img{:src=>src, :alt=>(attr :alt), :width=>(attr :width), :height=>(attr :height), :title=>(attr :title)}
    - else
      %img{:src=>src, :alt=>(attr :alt), :width=>(attr :width), :height=>(attr :height), :title=>(attr :title)}
