class Middleman::Directory

def handle_directory(lookup)

def handle_directory(lookup)
  lookup = File.join(lookup, '*')
  
  results = Dir[lookup].sort do |a, b|
    simple_a = a.gsub(Middleman::Server.root + "/", '').gsub(Middleman::Server.views + "/", '') 
    simple_b = b.gsub(Middleman::Server.root + "/", '').gsub(Middleman::Server.views + "/", '')
    
    a_dir = simple_a.split("/").first
    b_dir = simple_b.split("/").first
    
    if a_dir == Middleman::Server.images_dir
      -1
    elsif b_dir == Middleman::Server.images_dir
      1
    else
      0
    end
  end
  
  results.each do |file_source|
    if File.directory?(file_source)
      handle_directory(file_source)
      next
    end
    
    next if file_source.include?('layout') && !file_source.include?('.css')
    
    # Skip partials prefixed with an underscore
    next unless file_source.gsub(Middleman::Server.root, '').split('/').select { |p| p[0,1] == '_' }.empty?
    
    file_extension = File.extname(file_source)
    file_destination = File.join(given_destination, file_source.gsub(source, '.'))
    file_destination.gsub!('/./', '/')
    
    handled_by_tilt = ::Tilt.mappings.has_key?(file_extension.gsub(/^\./, ""))
    if handled_by_tilt
      file_destination.gsub!(file_extension, "")
    end
    
    destination = base.tilt_template(file_source, file_destination, config, &@block)
  end
end