Fix ignoring layouts from the sitemap when the source directory has been set to something other than 'source'. Fixes #896.

This commit is contained in:
Ben Hollis 2013-05-30 20:16:27 -07:00
parent 474b56ae25
commit 7bdf28a421
7 changed files with 17 additions and 3 deletions

View file

@ -11,6 +11,7 @@
master
===
* Fix ignoring layouts from the sitemap when the source directory has been set to something other than 'source'. #896
* Move more into core, autoloaded if gems are available.
* DataStore may now be accessed like a hash with #[] and #has_key?. #880
* The i18n extension now supports providing localized templates as separate files, like index.es.html.haml. #816, #823

View file

@ -0,0 +1,7 @@
Feature: Support customizing the source directory name
Scenario: Layouts don't try to build
Given a successfully built app at "custom-src-app"
When I cd to "build"
Then the following files should not exist:
| layouts/layout.html |

View file

@ -0,0 +1 @@
set :source, 'src'

View file

@ -0,0 +1 @@
<%= yield %>

View file

@ -35,8 +35,8 @@ module Middleman
# Files starting with an underscore, but not a double-underscore
:partials => proc { |file| file =~ %r{/_} && file !~ %r{/__} },
:layout => proc { |file|
file.start_with?('source/layout.') || file.start_with?('source/layouts/')
:layout => proc { |file, app|
file.start_with?(File.join(app.config[:source], 'layout.')) || file.start_with?(File.join(app.config[:source], 'layouts/'))
}
}, 'Callbacks that can exclude paths from the sitemap'

View file

@ -46,7 +46,11 @@ module Middleman
return false unless path
ignored = @app.config[:ignored_sitemap_matchers].any? do |name, callback|
if callback.arity == 1
callback.call(file)
else
callback.call(file, @app)
end
end
@file_paths_on_disk << file unless ignored