def result(node)
result_buffer = []
id_attribute = node.id ? %Q( id="#{node.id}") : nil
div_classes = ['ulist', node.style, node.role].compact
marker_checked = nil
marker_unchecked = nil
if (checklist = (node.option? 'checklist'))
div_classes.insert(1, 'checklist')
ul_class_attribute = ' class="checklist"'
if node.option? 'interactive'
marker_checked = %Q(<input type="checkbox" data-item-complete="1" checked> )
marker_unchecked = %Q(<input type="checkbox" data-item-complete="0"> )
else
if node.document.attr? 'icons', 'font'
marker_checked = '<i class="icon-check"></i> '
marker_unchecked = '<i class="icon-check-empty"></i> '
else
marker_checked = %Q(<input type="checkbox" data-item-complete="1" checked disabled> )
marker_unchecked = %Q(<input type="checkbox" data-item-complete="0" disabled> )
end
end
elsif !node.style.nil?
ul_class_attribute = %Q( class="#{node.style}")
else
ul_class_attribute = nil
end
div_class_attribute = %Q( class="#{div_classes * ' '}")
result_buffer << %Q(<div#{id_attribute}#{div_class_attribute}>)
result_buffer << %Q(<div class="title">#{node.title}</div>) if node.title?
result_buffer << %Q(<ul#{ul_class_attribute}>)
node.items.each do |item|
if checklist && (item.attr? 'checkbox')
marker = (item.attr? 'checked') ? marker_checked : marker_unchecked
else
marker = nil
end
result_buffer << '<li>'
result_buffer << %Q(<p>#{marker}#{item.text}</p>)
result_buffer << item.content if item.blocks?
result_buffer << '</li>'
end
result_buffer << '</ul>'
result_buffer << '</div>'
result_buffer * EOL
end