lib/middleman-more/extensions/directory_indexes.rb



# Directory Indexes extension
class Middleman::Extensions::DirectoryIndexes < ::Middleman::Extension
  # Update the main sitemap resource list
  # @return [void]
  def manipulate_resource_list(resources)
    index_file = app.index_file
    new_index_path = "/#{index_file}"

    resources.each do |resource|
      # Check if it would be pointless to reroute
      next if resource.destination_path == index_file ||
              resource.destination_path.end_with?(new_index_path) ||
              File.extname(index_file) != resource.ext

      # Check if frontmatter turns directory_index off
      next if resource.raw_data[:directory_index] == false

      # Check if file metadata (options set by "page" in config.rb) turns directory_index off
      next if resource.metadata[:options][:directory_index] == false

      resource.destination_path = resource.destination_path.chomp(File.extname(index_file)) + new_index_path
    end
  end
end