module Middleman::Sitemap

Sitemap namespace

Sitemap namespace

Public Class Methods

included(app)
Alias for: registered
registered(app) click to toggle source

Once registered

# File lib/middleman-core/sitemap.rb, line 16
def registered(app)
  app.register Middleman::Sitemap::Extensions::RequestEndpoints
  app.register Middleman::Sitemap::Extensions::Proxies
  app.register Middleman::Sitemap::Extensions::Ignores
  app.register Middleman::Sitemap::Extensions::Redirects

  # Set to automatically convert some characters into a directory
  app.config.define_setting :automatic_directory_matcher, nil, 'Set to automatically convert some characters into a directory'

  # Setup callbacks which can exclude paths from the sitemap
  app.config.define_setting :ignored_sitemap_matchers, {
    # dotfiles and folders in the root
    root_dotfiles: proc { |file| file.start_with?('.') },

    # Files starting with an dot, but not .htaccess
    source_dotfiles: proc { |file|
      file =~ %r{/\.} && file !~ %r{/\.(htaccess|htpasswd|nojekyll)}
    },

    # Files starting with an underscore, but not a double-underscore
    partials: proc { |file| file =~ %r{/_[^_]} },

    layout: proc { |file, sitemap_app|
      file.start_with?(File.join(sitemap_app.config[:source], 'layout.')) || file.start_with?(File.join(sitemap_app.config[:source], 'layouts/'))
    }
  }, 'Callbacks that can exclude paths from the sitemap'

  # Include instance methods
  app.send :include, InstanceMethods

  # Initialize Sitemap
  app.before_configuration do
    sitemap
  end
end
Also aliased as: included