Sha256: f47c72a4cf2147b87edd2a714fc7155c7063aa9994db8cbc4a3f0e9dc3f79fc3

Contents?: true

Size: 987 Bytes

Versions: 9

Compression:

Stored size: 987 Bytes

Contents

require "uri"

module ReverseAdoc
  module Converters
    class A < Base
      def convert(node, state = {})
        name  = treat_children(node, state)
        href  = node['href']
        title = extract_title(node)
        id = node['id'] || node['name']

        id = id&.gsub(/\s/, "")&.gsub(/__+/, "_")

        if /^_Toc\d+$|^_GoBack$/.match id
          ""
        elsif !id.nil? && !id.empty?
          "[[#{id}]]"
        elsif href.to_s.start_with?('#')
          href = href.sub(/^#/, "").gsub(/\s/, "").gsub(/__+/, "_")
          if name.empty?
            "<<#{href}>>"
          else
            "<<#{href},#{name}>>"
          end
        elsif href.to_s.empty?
          name
        else
          name = title if name.empty?
          href = "link:#{href}" unless href.to_s =~ URI::DEFAULT_PARSER.make_regexp
          link = "#{href}[#{name}]"
          link.prepend(' ')
          link
        end
      end

      private

    end

    register :a, A.new
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
reverse_adoc-0.3.7 lib/reverse_adoc/converters/a.rb
reverse_adoc-0.3.6 lib/reverse_adoc/converters/a.rb
reverse_adoc-0.3.5 lib/reverse_adoc/converters/a.rb
reverse_adoc-0.3.4 lib/reverse_adoc/converters/a.rb
reverse_adoc-0.3.3 lib/reverse_adoc/converters/a.rb
reverse_adoc-0.3.1 lib/reverse_adoc/converters/a.rb
reverse_adoc-0.3.0 lib/reverse_adoc/converters/a.rb
reverse_adoc-0.2.10 lib/reverse_adoc/converters/a.rb
reverse_adoc-0.2.9 lib/reverse_adoc/converters/a.rb