= html_tag('span', { :class => [@type, role, ('fragment' if (option? :step) || (attr? 'step'))], :style => ("float: #{attr :float}" if attr? :float) }.merge(data_attrs(@attributes))) - if @type == 'icon' && (@document.attr? :icons, 'font') - style_class = [(attr :set, 'fa'), "fa-#{@target}", ("fa-#{attr :size}" if attr? :size), ("fa-rotate-#{attr :rotate}" if attr? :rotate), ("fa-flip-#{attr :flip}" if attr? :flip)] - if attr? :link a.image href=(attr :link) target=(attr :window) data-preview-link=(bool_data_attr :link_preview) 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) data-preview-link=(bool_data_attr :link_preview) |[#{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) data-preview-link=(bool_data_attr :link_preview) 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)