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