Sha256: 55e43bf04909d5fc9d366a979e0476e3d58f761047754b00d75a2e31b9a043c0
Contents?: true
Size: 992 Bytes
Versions: 1
Compression:
Stored size: 992 Bytes
Contents
class Middleman::Extensions::Outliner < ::Middleman::Extension def initialize(app, options_hash={}) super require 'open-uri' require 'nokogiri' end helpers do def outline(html) doc = Nokogiri::HTML.fragment(html, encoding='utf-8') elements = parse_elements(doc.children) partial('partials/glyptotheque/model-outline', locals: { elements: elements }) end private def parse_elements(elements) result = [] elements.each do |e| text = e.xpath('text()').text next unless e.element? class_name = e.attributes['class'] && e.attributes['class'].value attributes = e.attributes.reject {|k| k == 'class' } result << { el_name: e.name, class_name: class_name, attrs: attributes.values.map { |a| { name: a.name, value: a.value } }, children: parse_elements(e.children), text: text } end return result end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sculptor-0.0.7 | lib/sculptor/extensions/outliner.rb |