diff --git a/middleman-core/lib/middleman-core/core_extensions/front_matter.rb b/middleman-core/lib/middleman-core/core_extensions/front_matter.rb index 03d2f431..d685e994 100644 --- a/middleman-core/lib/middleman-core/core_extensions/front_matter.rb +++ b/middleman-core/lib/middleman-core/core_extensions/front_matter.rb @@ -12,7 +12,7 @@ require 'middleman-core/util/data' module Middleman::CoreExtensions class FrontMatter < ::Middleman::Extension # Try to run after routing but before directory_indexes - self.resource_list_manipulator_priority = 90 + self.resource_list_manipulator_priority = 10 def initialize(app, options_hash={}, &block) super diff --git a/middleman-core/lib/middleman-core/sitemap/extensions/ignores.rb b/middleman-core/lib/middleman-core/sitemap/extensions/ignores.rb index 9ba53899..0e54b2c2 100644 --- a/middleman-core/lib/middleman-core/sitemap/extensions/ignores.rb +++ b/middleman-core/lib/middleman-core/sitemap/extensions/ignores.rb @@ -3,6 +3,8 @@ module Middleman module Extensions # Class to handle managing ignores class Ignores < Extension + self.resource_list_manipulator_priority = 0 + # Expose `create_ignore` as `app.ignore` expose_to_application ignore: :create_ignore diff --git a/middleman-core/lib/middleman-core/sitemap/extensions/on_disk.rb b/middleman-core/lib/middleman-core/sitemap/extensions/on_disk.rb index ba8f656e..a0d03400 100644 --- a/middleman-core/lib/middleman-core/sitemap/extensions/on_disk.rb +++ b/middleman-core/lib/middleman-core/sitemap/extensions/on_disk.rb @@ -5,6 +5,8 @@ module Middleman module Sitemap module Extensions class OnDisk < Extension + self.resource_list_manipulator_priority = 0 + def initialize(app, config={}, &block) super diff --git a/middleman-core/lib/middleman-core/sitemap/extensions/proxies.rb b/middleman-core/lib/middleman-core/sitemap/extensions/proxies.rb index 78d6e17a..0285726f 100644 --- a/middleman-core/lib/middleman-core/sitemap/extensions/proxies.rb +++ b/middleman-core/lib/middleman-core/sitemap/extensions/proxies.rb @@ -7,6 +7,8 @@ module Middleman # Manages the list of proxy configurations and manipulates the sitemap # to include new resources based on those configurations class Proxies < Extension + self.resource_list_manipulator_priority = 0 + # Expose `create_proxy` as `app.proxy` expose_to_application proxy: :create_proxy @@ -83,7 +85,16 @@ module Middleman end end + class Resource + def proxy_to(path) + throw "Resource#proxy_to has been removed. Use ProxyResource class instead." + end + end + class ProxyResource < ::Middleman::Sitemap::Resource + Contract String + attr_reader :target + # Initialize resource with parent store and URL # @param [Middleman::Sitemap::Store] store # @param [String] path @@ -119,6 +130,10 @@ module Middleman target_resource.file_descriptor end + def metadata + target_resource.metadata.deep_merge super + end + Contract Maybe[String] def content_type mime_type = super diff --git a/middleman-core/lib/middleman-core/sitemap/extensions/redirects.rb b/middleman-core/lib/middleman-core/sitemap/extensions/redirects.rb index e42d34dc..dc0c74f9 100644 --- a/middleman-core/lib/middleman-core/sitemap/extensions/redirects.rb +++ b/middleman-core/lib/middleman-core/sitemap/extensions/redirects.rb @@ -7,6 +7,8 @@ module Middleman # Manages the list of proxy configurations and manipulates the sitemap # to include new resources based on those configurations class Redirects < Extension + self.resource_list_manipulator_priority = 0 + # Expose `create_redirect` to config as `redirect` expose_to_config redirect: :create_redirect diff --git a/middleman-core/lib/middleman-core/sitemap/extensions/request_endpoints.rb b/middleman-core/lib/middleman-core/sitemap/extensions/request_endpoints.rb index fc66cd71..245df873 100644 --- a/middleman-core/lib/middleman-core/sitemap/extensions/request_endpoints.rb +++ b/middleman-core/lib/middleman-core/sitemap/extensions/request_endpoints.rb @@ -4,6 +4,8 @@ module Middleman module Sitemap module Extensions class RequestEndpoints < Extension + self.resource_list_manipulator_priority = 0 + # Expose `create_endpoint` to config as `endpoint` expose_to_config endpoint: :create_endpoint diff --git a/middleman-core/lib/middleman-core/sitemap/store.rb b/middleman-core/lib/middleman-core/sitemap/store.rb index 129fa9b5..f7af3bd2 100644 --- a/middleman-core/lib/middleman-core/sitemap/store.rb +++ b/middleman-core/lib/middleman-core/sitemap/store.rb @@ -188,6 +188,7 @@ module Middleman @app.logger.debug '== Rebuilding resource list' @resources = @resource_list_manipulators.reduce([]) do |result, m| + @app.logger.debug "== Running manipulator: #{m[:name]}" newres = m[:manipulator].send(m[:custom_name] || :manipulate_resource_list, result) # Reset lookup cache