Sha256: 8db05341dd90bd197da0ac2ac42c176f6353a432751480d44a89f0979ea08517
Contents?: true
Size: 1.11 KB
Versions: 6
Compression:
Stored size: 1.11 KB
Contents
module Coradoc::Input::HTML module Converters class Pre < Base def to_coradoc(node, state = {}) id = node["id"] lang = language(node) content = treat_children(node, state) unless lang return Coradoc::Element::Block::Literal.new( nil, lines: content, id: id, ) end Coradoc::Element::Block::SourceCode.new( nil, lines: content, lang: lang, id: id, ) end private def treat(node, _state) return "\n" if node.name == "br" prefix = postfix = "\n\n" if node.name == "p" "#{prefix}#{node.text}#{postfix}" end def language(node) lang = language_from_highlight_class(node) lang || language_from_confluence_class(node) end def language_from_highlight_class(node) node.parent["class"].to_s[/highlight-([a-zA-Z0-9]+)/, 1] end def language_from_confluence_class(node) node["class"].to_s[/brush:\s?(:?.*);/, 1] end end register :pre, Pre.new end end
Version data entries
6 entries across 6 versions & 1 rubygems