Sha256: bd9d16388ce70910c3489148ac747f697183b38155b194947c2fed50c17082f8

Contents?: true

Size: 939 Bytes

Versions: 63

Compression:

Stored size: 939 Bytes

Contents

module Scrivito

class TextLinkConversion

  def initialize(text_links)
    @text_links = text_links
  end

  def convert(html)
    return html unless @text_links

    if html
      html.gsub(%r{<?\binternallink:(\d+)\b>?(['"]?)}) do
        link = @text_links[$1]
        postfix = $2
        if link
          attach_snippet("#{convert_link(link)}#{postfix}", link)
        else
          "#__text_link_missing#{postfix}"
        end
      end
    end
  end

  private

  def convert_link(link)
    link.internal? ? convert_internal_link(link) : convert_external_link(link)
  end

  def attach_snippet(text, link)
    snippet = link.html_attribute_snippet
    if snippet.present?
      "#{text} #{snippet}"
    else
      text
    end
  end

  def convert_internal_link(link)
    if link.obj_id
      "objid:#{link.obj_id}#{link.query_and_fragment}"
    end
  end

  def convert_external_link(link)
    link.external_url
  end

end

end

Version data entries

63 entries across 63 versions & 1 rubygems

Version Path
scrivito_sdk-0.50.0.rc1 lib/scrivito/text_link_conversion.rb
scrivito_sdk-0.42.1 lib/scrivito/text_link_conversion.rb
scrivito_sdk-0.42.1.rc3 lib/scrivito/text_link_conversion.rb
scrivito_sdk-0.42.1.rc2 lib/scrivito/text_link_conversion.rb
scrivito_sdk-0.42.1.rc1 lib/scrivito/text_link_conversion.rb
scrivito_sdk-0.42.0 lib/scrivito/text_link_conversion.rb
scrivito_sdk-0.41.1 lib/scrivito/text_link_conversion.rb
scrivito_sdk-0.41.0 lib/scrivito/text_link_conversion.rb
scrivito_sdk-0.41.0.rc2 lib/scrivito/text_link_conversion.rb
scrivito_sdk-0.41.0.rc1 lib/scrivito/text_link_conversion.rb
scrivito_sdk-0.40.0 lib/scrivito/text_link_conversion.rb
scrivito_sdk-0.40.0.rc2 lib/scrivito/text_link_conversion.rb
scrivito_sdk-0.40.0.rc1 lib/scrivito/text_link_conversion.rb
scrivito_sdk-0.30.0 lib/scrivito/text_link_conversion.rb
scrivito_sdk-0.30.0.rc1 lib/scrivito/text_link_conversion.rb
scrivito_sdk-0.18.1 lib/scrivito/text_link_conversion.rb
scrivito_sdk-0.18.0 lib/scrivito/text_link_conversion.rb
scrivito_sdk-0.17.0 lib/scrivito/text_link_conversion.rb
scrivito_sdk-0.16.0 lib/scrivito/text_link_conversion.rb
scrivito_sdk-0.15.0 lib/scrivito/text_link_conversion.rb