Sha256: 0c95c77d7dd2ae5712b4382ea7f47502e99ba57f1a7648394fe8e5b9a9b74cc7

Contents?: true

Size: 798 Bytes

Versions: 1

Compression:

Stored size: 798 Bytes

Contents

#!/usr/bin/env ruby

require "nokogiri"

source = Nokogiri::HTML.parse(ARGF.read)

header = source.xpath('//tr/th').map do |th|
  th.inner_text
end

fragment = Nokogiri::HTML.fragment("")

builder = Nokogiri::HTML::Builder.with(fragment) do |doc|
  doc.ul {
    source.xpath('//tr[td]').each_with_index do |tr, i|
      doc.li {
        doc.text i + 1
        tr.xpath('td').each_with_index do |td, i|
          doc.ul {
            doc.li {
              if header[i]
                doc.text header[i]
                doc.ul {
                  doc.li {
                    doc.text td.inner_text
                  }
                }
              else
                doc.text td.inner_text
              end
            }
          }
        end
      }
    end
  }
end

puts fragment.to_html

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
table2li-0.1.0 exe/table2li