Sha256: 30b392065d337fea4a59c06bae6a7cb490f3ca6f5f4ea9af706e61b8fe83b44b

Contents?: true

Size: 1.41 KB

Versions: 134

Compression:

Stored size: 1.41 KB

Contents

require 'nokogiri'

module Scrivito

  class ContentConversion
    def self.convert_html_links(input, request_host, request_port)
      doc = Nokogiri::HTML.parse("<div class='internal_jump_point'>#{input}</div>")

      doc.css('body a').each do |a_tag|
        if href = a_tag.attributes['href']
          link = Link.parse(href.value, request_host, request_port)
          href.value = link.to_cms_api_html_url
        end
      end

      doc.css('body img').each do |img_tag|
        if src = img_tag.attributes['src']
          link = Link.parse(src.value, request_host, request_port)
          src.value = link.to_cms_api_html_url
        end
      end

      new_html = doc.css('body div.internal_jump_point').inner_html

      nbsp = Nokogiri::HTML("&nbsp;").text
      new_html.gsub(nbsp, "&nbsp;")
    end

    def self.convert_linklist_urls(linklist, request_host, request_port)
      linklist.map do |link_data|
        convert_link(link_data, request_host, request_port)
      end
    end

    def self.convert_link(link_data, request_host, request_port)
      return unless link_data

      if url = link_data.delete(:url)
        link_data.delete(:obj_id)
        link = Link.parse(url, request_host, request_port)
        link_data.merge!(link.to_cms_api_linklist_params)
      end

      if obj_id = link_data.delete(:obj_id)
        link_data.merge!(obj: Obj.find(obj_id))
      end

      Link.new(link_data)
    end
  end

end

Version data entries

134 entries across 134 versions & 1 rubygems

Version Path
scrivito_sdk-1.19.0.rc1 app/cms/scrivito/content_conversion.rb
scrivito_sdk-1.18.0 app/cms/scrivito/content_conversion.rb
scrivito_sdk-1.18.0.rc1 app/cms/scrivito/content_conversion.rb
scrivito_sdk-1.17.0 app/cms/scrivito/content_conversion.rb
scrivito_sdk-1.17.0.rc3 app/cms/scrivito/content_conversion.rb
scrivito_sdk-1.17.0.rc2 app/cms/scrivito/content_conversion.rb
scrivito_sdk-1.17.0.rc1 app/cms/scrivito/content_conversion.rb
scrivito_sdk-1.16.0 app/cms/scrivito/content_conversion.rb
scrivito_sdk-1.16.0.rc2 app/cms/scrivito/content_conversion.rb
scrivito_sdk-1.16.0.rc1 app/cms/scrivito/content_conversion.rb
scrivito_sdk-1.15.0 app/cms/scrivito/content_conversion.rb
scrivito_sdk-1.15.0.rc2 app/cms/scrivito/content_conversion.rb
scrivito_sdk-1.15.0.rc1 app/cms/scrivito/content_conversion.rb
scrivito_sdk-1.14.0 app/cms/scrivito/content_conversion.rb
scrivito_sdk-1.14.0.rc3 app/cms/scrivito/content_conversion.rb
scrivito_sdk-1.14.0.rc2 app/cms/scrivito/content_conversion.rb
scrivito_sdk-1.14.0.rc1 app/cms/scrivito/content_conversion.rb
scrivito_sdk-1.13.0 app/cms/scrivito/content_conversion.rb
scrivito_sdk-1.13.0.rc2 app/cms/scrivito/content_conversion.rb
scrivito_sdk-1.13.0.rc1 app/cms/scrivito/content_conversion.rb