Sha256: 633d299236cd2bc186b82bf3f22b98063127c958454aeb688e0a9ed2f6afa1e3
Contents?: true
Size: 1.77 KB
Versions: 8
Compression:
Stored size: 1.77 KB
Contents
module Middleman::Extensions module DirectoryIndexes class << self 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 extensioned_path = prefix + File.extname(index_file) is_ignored = ignored_directory_indexes.include?(extensioned_path) if !sitemap.exists?(indexed_path) && !is_ignored parts = @original_path.split("/") last_part = parts.last last_part_ext = File.extname(last_part) if last_part_ext.blank? # This is a folder, redirect to index @request_path = extensioned_path end end end app.build_reroute do |destination, request_path| index_ext = File.extname(index_file) new_index_path = "/#{index_file}" if ignored_directory_indexes.include?(request_path) false elsif request_path =~ /#{new_index_path}$/ false else [ destination.sub(/#{index_ext.gsub(".", "\\.")}$/, new_index_path), request_path ] end end end alias :included :registered end module InstanceMethods def ignored_directory_indexes @_ignored_directory_indexes ||= [] end def page(url, options={}, &block) if options.has_key?(:directory_index) && !options["directory_index"] ignored_directory_indexes << url else super end end end end register :directory_indexes, DirectoryIndexes end
Version data entries
8 entries across 8 versions & 2 rubygems