module Middleman::CoreExtensions::Rendering::InstanceMethods

def wrap_layout(layout_name, &block)

Returns:
  • (void) -

Parameters:
  • layout_name (String, Symbol) --
def wrap_layout(layout_name, &block)
  # Save current buffer for later
  @_out_buf, _buf_was = "", @_out_buf
  layout_path = locate_layout(layout_name, current_engine)
  extension = File.extname(layout_path)
  engine = extension[1..-1].to_sym
  # Store last engine for later (could be inside nested renders)
  @current_engine, engine_was = engine, @current_engine
  begin
    content = if block_given?
      capture_html(&block)
    else
      ""
    end
  ensure
    # Reset stored buffer
    @_out_buf = _buf_was
  end
  concat_content render_individual_file(layout_path, @current_locs || {}, @current_opts || {}, self) { content }
ensure
  @current_engine = engine_was
end