Sha256: f6bf61ad43089eac3998013406048e6f20164d71f452853e33df8e59d46d39e2

Contents?: true

Size: 960 Bytes

Versions: 10

Compression:

Stored size: 960 Bytes

Contents

module ReverseAsciidoctor
  module Converters
    class Pre < Base
      def convert(node, state = {})
        id = node['id']
        anchor = id ? "[[#{id}]]\n" : ""
        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"
        end
      end

      private

      def treat(node, state)
        node.to_s
      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

10 entries across 10 versions & 2 rubygems

Version Path
reverse_adoc-0.2.8 lib/reverse_asciidoctor/converters/pre.rb
reverse_adoc-0.2.7 lib/reverse_asciidoctor/converters/pre.rb
reverse_adoc-0.2.6 lib/reverse_asciidoctor/converters/pre.rb
reverse_adoc-0.2.5 lib/reverse_asciidoctor/converters/pre.rb
reverse_adoc-0.2.4 lib/reverse_asciidoctor/converters/pre.rb
reverse_adoc-0.2.3 lib/reverse_asciidoctor/converters/pre.rb
reverse_asciidoctor-0.2.2 lib/reverse_asciidoctor/converters/pre.rb
reverse_asciidoctor-0.2.1 lib/reverse_asciidoctor/converters/pre.rb
reverse_asciidoctor-0.2.0 lib/reverse_asciidoctor/converters/pre.rb
reverse_asciidoctor-0.1.0 lib/reverse_asciidoctor/converters/pre.rb