From 7282475350ea673bec972ac67abebf047f32bc8a Mon Sep 17 00:00:00 2001 From: Thomas Reynolds Date: Sat, 7 Jan 2012 17:27:26 -0800 Subject: [PATCH] Builder and DirectoryIndexes now check frontmatter options. --- CHANGELOG.md | 1 + .../extensions/directory_indexes.rb | 37 +++++++++++++++---- 2 files changed, 30 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ce23a969..75d694cf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,7 @@ * activating extensions can now take an options hash * Don't re-minify files with ".min" in their name * Serve purely static folders directly (without source/ and config.rb) +* Set ignored files and disable directory_indexes from YAML frontmatter 2.0.14 ==== diff --git a/middleman-core/lib/middleman-core/extensions/directory_indexes.rb b/middleman-core/lib/middleman-core/extensions/directory_indexes.rb index 0a8b07a2..4f7cfa94 100644 --- a/middleman-core/lib/middleman-core/extensions/directory_indexes.rb +++ b/middleman-core/lib/middleman-core/extensions/directory_indexes.rb @@ -4,15 +4,25 @@ module Middleman::Extensions def registered(app) app.send :include, InstanceMethods app.before do - next if sitemap.exists?(@original_path) - - prefix = @original_path.sub(/\/$/, "") - indexed_path = prefix + "/" + index_file - + prefix = @original_path.sub(/\/$/, "") + indexed_path = prefix + "/" + index_file extensioned_path = prefix + File.extname(index_file) - is_ignored = ignored_directory_indexes.include?(extensioned_path) - - if !sitemap.exists?(indexed_path) && !is_ignored + + is_ignored = false + fm_ignored = false + + if sitemap.exists?(@original_path) + d = sitemap.page(@original_path).data + if !d.nil? && d.has_key?("directory_index") && d["directory_index"] == false + fm_ignored = true + else + next + end + else + is_ignored = ignored_directory_indexes.include?(extensioned_path) + end + + if !sitemap.exists?(indexed_path) && !is_ignored && !fm_ignored parts = @original_path.split("/") last_part = parts.last last_part_ext = File.extname(last_part) @@ -27,11 +37,22 @@ module Middleman::Extensions app.build_reroute do |destination, request_path| index_ext = File.extname(index_file) new_index_path = "/#{index_file}" + frontmatter_ignore = false + + if sitemap.exists?(request_path) + p = sitemap.page(request_path) + d = p.data + if !d.nil? + frontmatter_ignore = d.has_key?("directory_index") && d["directory_index"] == false + end + end if ignored_directory_indexes.include?(request_path) false elsif request_path =~ /#{new_index_path}$/ false + elsif frontmatter_ignore + false else [ destination.sub(/#{index_ext.gsub(".", "\\.")}$/, new_index_path),