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-1.2.0.rc1 lib/scrivito/text_link_conversion.rb
scrivito_sdk-1.1.1 lib/scrivito/text_link_conversion.rb
scrivito_sdk-1.1.0 lib/scrivito/text_link_conversion.rb
scrivito_sdk-1.1.0.rc3 lib/scrivito/text_link_conversion.rb
scrivito_sdk-1.1.0.rc2 lib/scrivito/text_link_conversion.rb
scrivito_sdk-1.1.0.rc1 lib/scrivito/text_link_conversion.rb
scrivito_sdk-1.0.0 lib/scrivito/text_link_conversion.rb
scrivito_sdk-1.0.0.rc4 lib/scrivito/text_link_conversion.rb
scrivito_sdk-1.0.0.rc3 lib/scrivito/text_link_conversion.rb
scrivito_sdk-1.0.0.rc2 lib/scrivito/text_link_conversion.rb
scrivito_sdk-1.0.0.rc1 lib/scrivito/text_link_conversion.rb
scrivito_sdk-0.90.0 lib/scrivito/text_link_conversion.rb
scrivito_sdk-0.90.0.rc3 lib/scrivito/text_link_conversion.rb
scrivito_sdk-0.90.0.rc2 lib/scrivito/text_link_conversion.rb
scrivito_sdk-0.90.0.rc1 lib/scrivito/text_link_conversion.rb
scrivito_sdk-0.70.2 lib/scrivito/text_link_conversion.rb
scrivito_sdk-0.71.2 lib/scrivito/text_link_conversion.rb
scrivito_sdk-0.71.1 lib/scrivito/text_link_conversion.rb
scrivito_sdk-0.70.1 lib/scrivito/text_link_conversion.rb
scrivito_sdk-0.71.0 lib/scrivito/text_link_conversion.rb