module Middleman::Base::InstanceMethods
def process_request(options={})
def process_request(options={}) if !settings.views.include?(settings.root) settings.set :views, File.join(settings.root, settings.views) end # Normalize the path and add index if we're looking at a directory request.path_info = self.class.path_to_index(request.path) request_path = request.path_info.gsub("%20", " ") found_template = resolve_template(request_path, :raise_exceptions => false) return status(404) unless found_template return unless settings.execute_before_processing!(self, found_template) options.merge!(request['custom_options'] || {}) old_layout = settings.layout settings.set :layout, options[:layout] if !options[:layout].nil? local_layout = if settings.layout if options[:layout] == false || request.path_info =~ /\.(css|js)$/ false else settings.fetch_layout_path(settings.layout).to_sym end else false end render_options = { :layout => local_layout } render_options[:layout_engine] = options[:layout_engine] if options.has_key? :layout_engine path, engine = found_template locals = request['custom_locals'] || {} begin result = render(engine, path, render_options, locals) if result content_type mime_type(File.extname(request_path)), :charset => 'utf-8' status 200 body result end # rescue # status(404) ensure settings.set :layout, old_layout end end