lib/reverse_adoc/converters/pre.rb in reverse_adoc-0.3.7 vs lib/reverse_adoc/converters/pre.rb in reverse_adoc-1.0.0

- old
+ new

@@ -1,23 +1,36 @@ module ReverseAdoc module Converters class Pre < Base - def convert(node, state = {}) - id = node['id'] - anchor = id ? "[[#{id}]]\n" : "" + def to_coradoc(node, state = {}) + id = node["id"] lang = language(node) content = treat_children(node, state) - if lang - "\n\n#{anchor}[source,#{lang}]\n----\n" << content.lines.to_a.join("") << "\n----\n\n" - else - "\n\n#{anchor}....\n" << content.lines.to_a.join("") << "\n....\n\n" + + 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 + def convert(node, state = {}) + Coradoc::Generator.gen_adoc(to_coradoc(node, state)) + end + private - def treat(node, state) + def treat(node, _state) return "\n" if node.name == "br" prefix = postfix = "\n\n" if node.name == "p" "#{prefix}#{node.text}#{postfix}" @@ -27,14 +40,14 @@ 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] + 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] + node["class"].to_s[/brush:\s?(:?.*);/, 1] end end register :pre, Pre.new end