Sha256: 7969bccc0cc8be6de54656a09c33ed8d2b1fb84804cfab86a7add7ef04031bb8
Contents?: true
Size: 1.91 KB
Versions: 6
Compression:
Stored size: 1.91 KB
Contents
module Coradoc::Input::HTML module Converters class Td < Base def to_coradoc(node, state = {}) # convert(node, state) id = node["id"] colrowattr = colrow(node["colspan"], node["rowspan"]) alignattr = alignstyle(node) style = cellstyle(node) singlepara = node.elements.size == 1 && node.elements.first.name == "p" state[:tdsinglepara] = singlepara if singlepara adoccell = node.at(".//ul | .//ol | .//pre | .//blockquote | .//br | .//hr | .//img[@src]") || node.at(".//p") && !singlepara style = "a" if adoccell content = treat_children_coradoc(node, state) options = {}.tap do |hash| hash[:id] = id hash[:colrowattr] = colrowattr hash[:alignattr] = alignattr hash[:style] = style hash[:content] = content end Coradoc::Element::Table::Cell.new(options) end def cellstyle(_node) "" end def colrow(colspan, rowspan) if colspan && rowspan && colspan != "1" && rowspan != "1" "#{colspan}.#{rowspan}+" elsif colspan && colspan != "1" "#{colspan}+" elsif rowspan && rowspan != "1" ".#{rowspan}+" else "" end end def alignstyle(node) align = node["align"] valign = node["valign"] a = case align when "left" then "<" when "center" then "^" when "right" then ">" else "" end v = case valign when "top" then "<" when "middle" then "^" when "bottom" then ">" else "" end if align && valign "#{a}.#{v}" elsif align a elsif valign ".#{v}" else "" end end end register :td, Td.new end end
Version data entries
6 entries across 6 versions & 1 rubygems