module Middleman::CoreExtensions::Routing::InstanceMethods

def page(url, opts={}, &block)

Returns:
  • (void) -

Parameters:
  • opts (Hash) --
  • url (String) --
def page(url, opts={}, &block)
  blocks = Array(block)
  # Default layout
  opts[:layout] = layout if opts[:layout].nil?
  # If the url is a regexp
  if url.is_a?(Regexp) || url.include?("*")
    # Use the metadata loop for matching against paths at runtime
    sitemap.provides_metadata_for_path url do |url|
      { :options => opts, :blocks => blocks }
    end
    return
  end
  # Normalized path
  url = '/' + Middleman::Util.normalize_path(url)
  if url.end_with?('/') || File.directory?(File.join(source_dir, url))
    url = File.join(url, index_file)
  end
  # Setup proxy
  if target = opts.delete(:proxy)
    # TODO: deprecate proxy through page?
    proxy(url, target, opts, &block) and return
  elsif opts.delete(:ignore)
    # TODO: deprecate ignore through page?
    ignore(url)
  end
  # Setup a metadata matcher for rendering those options
  sitemap.provides_metadata_for_path url do |url|
    { :options => opts, :blocks => blocks }
  end
end

def with_layout(layout_name, &block)

Returns:
  • (void) -

Parameters:
  • layout_name (String, Symbol) --
def with_layout(layout_name, &block)
  old_layout = layout
  set :layout, layout_name
  instance_exec(&block) if block_given?
ensure
  set :layout, old_layout
end