module Locomotive module Steam module Middlewares class PageEditing include Locomotive::Engine.routes.url_helpers def initialize(app, opts = {}) @app = app end def call(env) disable_live_editing_if_not_html(env) status, headers, response = @app.call(env) site, mounted_on, page, locale, live_editing = env['steam.site'], env['steam.mounted_on'], env['steam.page'], env['steam.locale'].to_s, env['steam.live_editing'] if editable?(page, response, live_editing) html = %( ) response.first.gsub!('', %(#{html})) # make sure there is no span tags within the head. # For the record, Steam adds a span tag next to a block liquid tag response.first.gsub!(/
(.+)<\/head>/m) do head = Regexp.last_match[1] "#{head.gsub(//, '')}" end # new way of letting the parent window know about the status of the preview response.first.gsub!('', %(