middleman/lib/middleman/core_extensions/sitemap.rb

44 lines
919 B
Ruby
Raw Normal View History

require "active_support/core_ext/hash/deep_merge"
2011-11-08 02:58:07 +01:00
require 'find'
2011-11-08 07:34:02 +01:00
module Middleman::CoreExtensions::Sitemap
class << self
def registered(app)
2011-11-18 09:34:56 +01:00
app.send :include, InstanceMethods
2011-11-08 02:58:07 +01:00
end
2011-11-08 07:34:02 +01:00
alias :included :registered
end
2011-11-18 09:34:56 +01:00
module InstanceMethods
def initialize
2011-11-28 07:04:19 +01:00
super
file_changed %r{^source/} do |file|
2011-11-18 09:34:56 +01:00
sitemap.touch_file(file)
end
file_deleted %r{^source/} do |file|
2011-11-18 09:34:56 +01:00
sitemap.remove_file(file)
end
2011-11-10 06:19:11 +01:00
end
2011-11-18 09:34:56 +01:00
2011-11-10 06:19:11 +01:00
def sitemap
@sitemap ||= ::Middleman::Sitemap::Store.new(self)
2011-11-10 06:19:11 +01:00
end
2011-11-09 00:38:15 +01:00
# Keep a path from building
def ignore(path)
sitemap.ignore(path)
end
def reroute(url, target)
sitemap.proxy(url, target)
2011-11-09 00:38:15 +01:00
end
2011-11-18 09:34:56 +01:00
def provides_metadata(matcher=nil, &block)
@_provides_metadata ||= []
@_provides_metadata << [block, matcher] if block_given?
@_provides_metadata
end
2011-11-09 00:38:15 +01:00
end
2011-11-08 02:58:07 +01:00
end