diff --git a/CHANGELOG.md b/CHANGELOG.md index b0e7fc37..99122bad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,7 @@ 3.1.0.rc.1 === +* 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 diff --git a/middleman-core/features/custom-source.feature b/middleman-core/features/custom-source.feature new file mode 100644 index 00000000..7746e38c --- /dev/null +++ b/middleman-core/features/custom-source.feature @@ -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 | diff --git a/middleman-core/features/i18n_builder.feature b/middleman-core/features/i18n_builder.feature index 4905569a..1e7139be 100644 --- a/middleman-core/features/i18n_builder.feature +++ b/middleman-core/features/i18n_builder.feature @@ -13,9 +13,11 @@ Feature: i18n Builder | index.html | | hello.html | | morning.html | + | one.html | | es/index.html | | es/hola.html | | es/manana.html | + | es/una.html | | CNAME | | password.txt | Then the following files should not exist: @@ -23,9 +25,11 @@ Feature: i18n Builder And the file "index.html" should contain "Howdy" And the file "hello.html" should contain "Hello World" And the file "morning.html" should contain "Good morning" + And the file "one.html" should contain "Only one" And the file "es/index.html" should contain "Como Esta?" And the file "es/hola.html" should contain "Hola World" And the file "es/manana.html" should contain "Buenos días" + And the file "es/una.html" should contain "Solamente una" And the file "CNAME" should contain "test.github.com" And the file "password.txt" should contain "hunter2" @@ -145,4 +149,4 @@ Feature: i18n Builder And the file "index.html" should contain '"stylesheets/site.css"' And the file "hello.html" should contain '"stylesheets/site.css"' And the file "es/index.html" should contain '"../stylesheets/site.css"' - And the file "es/hola.html" should contain '"../stylesheets/site.css"' \ No newline at end of file + And the file "es/hola.html" should contain '"../stylesheets/site.css"' diff --git a/middleman-core/features/i18n_preview.feature b/middleman-core/features/i18n_preview.feature index ec77e884..ea1acf11 100644 --- a/middleman-core/features/i18n_preview.feature +++ b/middleman-core/features/i18n_preview.feature @@ -14,6 +14,8 @@ Feature: i18n Preview Then I should see "Hello World" When I go to "/morning.html" Then I should see "Good morning" + When I go to "/one.html" + Then I should see "Only one" When I go to "/en/index.html" Then I should see "File Not Found" When I go to "/en/morning.html" @@ -24,6 +26,8 @@ Feature: i18n Preview Then I should see "Hola World" When I go to "/es/manana.html" Then I should see "Buenos días" + When I go to "/es/una.html" + Then I should see "Solamente una" Scenario: A template changes i18n during preview Given a fixture app "i18n-test-app" @@ -241,4 +245,4 @@ Feature: i18n Preview Then I should see "More" When I go to "/es/" Then I should see "Como Esta?" - Then I should see "Mucho" \ No newline at end of file + Then I should see "Mucho" diff --git a/middleman-core/fixtures/custom-src-app/config.rb b/middleman-core/fixtures/custom-src-app/config.rb new file mode 100644 index 00000000..e23d2bd3 --- /dev/null +++ b/middleman-core/fixtures/custom-src-app/config.rb @@ -0,0 +1 @@ +set :source, 'src' diff --git a/middleman-core/fixtures/custom-src-app/src/index.html b/middleman-core/fixtures/custom-src-app/src/index.html new file mode 100644 index 00000000..e69de29b diff --git a/middleman-core/fixtures/custom-src-app/src/layouts/layout.html.erb b/middleman-core/fixtures/custom-src-app/src/layouts/layout.html.erb new file mode 100644 index 00000000..37f0bddb --- /dev/null +++ b/middleman-core/fixtures/custom-src-app/src/layouts/layout.html.erb @@ -0,0 +1 @@ +<%= yield %> diff --git a/middleman-core/fixtures/i18n-test-app/locales/es.yml b/middleman-core/fixtures/i18n-test-app/locales/es.yml index 11b8a327..a3321546 100644 --- a/middleman-core/fixtures/i18n-test-app/locales/es.yml +++ b/middleman-core/fixtures/i18n-test-app/locales/es.yml @@ -3,6 +3,7 @@ es: paths: hello: "hola" morning: "manana" + one: "una" greetings: "Como Esta?" hi: "Hola" diff --git a/middleman-core/fixtures/i18n-test-app/source/one.en.md b/middleman-core/fixtures/i18n-test-app/source/one.en.md new file mode 100644 index 00000000..2c4dcf4f --- /dev/null +++ b/middleman-core/fixtures/i18n-test-app/source/one.en.md @@ -0,0 +1 @@ +Only one diff --git a/middleman-core/fixtures/i18n-test-app/source/one.es.md b/middleman-core/fixtures/i18n-test-app/source/one.es.md new file mode 100644 index 00000000..8d31bd0f --- /dev/null +++ b/middleman-core/fixtures/i18n-test-app/source/one.es.md @@ -0,0 +1 @@ +Solamente una diff --git a/middleman-core/lib/middleman-core/sitemap.rb b/middleman-core/lib/middleman-core/sitemap.rb index 02554cca..958d6427 100644 --- a/middleman-core/lib/middleman-core/sitemap.rb +++ b/middleman-core/lib/middleman-core/sitemap.rb @@ -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' 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 d311973d..824daaf4 100644 --- a/middleman-core/lib/middleman-core/sitemap/extensions/on_disk.rb +++ b/middleman-core/lib/middleman-core/sitemap/extensions/on_disk.rb @@ -46,7 +46,11 @@ module Middleman return false unless path ignored = @app.config[:ignored_sitemap_matchers].any? do |name, callback| - callback.call(file) + if callback.arity == 1 + callback.call(file) + else + callback.call(file, @app) + end end @file_paths_on_disk << file unless ignored diff --git a/middleman-core/lib/middleman-core/sitemap/store.rb b/middleman-core/lib/middleman-core/sitemap/store.rb index 8a0ce73c..37cd0e71 100644 --- a/middleman-core/lib/middleman-core/sitemap/store.rb +++ b/middleman-core/lib/middleman-core/sitemap/store.rb @@ -250,7 +250,7 @@ module Middleman path_bits = path.split('.') lang = path_bits.last if app.langs.include?(lang.to_sym) - return path_bits[0..-1].join('.') + return path_bits[0..-2].join('.') end end