SitemapBuilder ============== SitemapBuilder is a rail plugin for sitemap generation. It is heavily based on Adam Salter's Sitemap Generator plugin (git://github.com/adamsalter/sitemap_generator.git). This plugin is not a fork of Adam's plugin but a complete rewriting since the goal and the way to build sitemap is different. Indeed, I wanted a way to build seveal sitemap for the same website depending on some paramters such as the site language (see file sitemap_example.rb). Installation ============ no gem for now. script/plugin install git://github.com/franck/sitemap_builder.git Usage ======= Create a sitemap.rb file in config/ Create a sitemap instance: sitemap = SitemapBuilder::Sitemap.new( :debug => true, :host => "http://localhost:3000", :filename => "sitemap.yml", :ping_search_engines => true ) sitemap.add root_path sitemap.add pages_path Page.all.each do |page| sitemap.add page_path(page) end sitemap.add url_for(:controller => "articles", :action => "index", :only_path => true) Then add the following lines for the sitemap generation and ping search engines (if set to true): sitemap.generate sitemap.ping_search_engines Then, fire the rake task : rake sitemapbuilder:create I use whenever gem (git://github.com/javan/whenever.git) to schedule a new sitemap creation : every 1.week do rake "sitemapbuilder:create" end A complete example file is available inside the plugin root directory : sitemap_example.rb Sitemap index ============= A sitemap index builder is also provided. Example of config/sitemap.rb: sitemap_index = SitemapBuilder::SitemapIndex.new() sitemap = SitemapBuilder::Sitemap.new() sitemap.add root_path sitemap_index.sitemaps << sitemap sitemap_index.generate These lines create a sitemap.xml file and a sitemap_index.xml file in the public directory. Options ======= SitemapBuilder::Sitemap accepts several options : * debug: generate sitemap files, verbose, does not ping search engines even if set to true (default: false) * host: base url of your website. don't forget the http:// (default: "http://localhost:3000") * filename: sitemap name (default: "sitemap.xml") * sitemap_folder: indicate a folder where the sitemap is located (default: "", example: "sitemaps") * ping_search_engines: ping google, yahoo, bing and ask.com (default: false) TODO ==== * test coverage * handling lot of links and sitemap indexes Copyright (c) 2009 Franck D'agostini, released under the MIT license