Sha256: f32f1e60a4a2a9a7464504bc3d52d20f0510cc3b88e741a7ce18aaac74838167

Contents?: true

Size: 1.19 KB

Versions: 5

Compression:

Stored size: 1.19 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|
        if link_data.has_key?(:url)
          link_data.delete(:obj_id)
          url = link_data.delete(:url)
          link = Link.parse(url, request_host, request_port)
          link_data.merge!(link.to_cms_api_linklist_params)
        end

        link_data
      end
    end
  end

end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
scrivito_sdk-0.16.0 lib/scrivito/content_conversion.rb
scrivito_sdk-0.15.0 lib/scrivito/content_conversion.rb
scrivito_sdk-0.14.0 lib/scrivito/content_conversion.rb
scrivito_sdk-0.13.0 lib/scrivito/content_conversion.rb
scrivito_sdk-0.12.0 lib/scrivito/content_conversion.rb