class Middleman::Base

def sitemap_node(n, first=false)

def sitemap_node(n, first=false)
  if n.children.length < 1
    if !first && File.extname(n.dir).length > 0
      haml_tag :li do
        path = n.dir.gsub(self.class.views, '')
        haml_concat link_to(File.basename(path), path)
      end
    end
  else  
    haml_tag(:li, :id => first ? "home" : nil) do
      if first
        haml_concat link_to("Homepage", "/" + self.class.index_file)
      else
        # we are a dir
        index = n.children.find { |c| c.dir.include?(self.class.index_file) }
        haml_concat link_to(index.dir.gsub(self.class.views + "/", '').gsub("/" + File.basename(index.dir), '').capitalize, index.dir.gsub(self.class.views, ''))
      end
  
      other_children = n.children.select { |c| !c.dir.include?(self.class.index_file) }
      if other_children.length > 0
        if first
          other_children.each { |i| sitemap_node(i) }
        else
          haml_tag :ul do
            other_children.each { |i| sitemap_node(i) }
          end
        end
      end
    end  
  end
end