If you want to use a sitemap with jekyll, you need to use a plugin like recurser's generate_sitemap.rb.
This works well for static pages and for posts, but won't work out of the box, if you use jekyll-models.
Since I am creating the downloads area of dracoblue.net with jekyll-models, I want to have those downloads in the sitemap.xml, too.
This small patch against generate_sitemap.rb, adds the functionality to render all jekyll-models in the sitemap, too.
diff --git a/_plugins/generate_sitemap.rb b/_plugins/generate_sitemap.rb
index bb683b8..72dfd92 100644
--- a/_plugins/generate_sitemap.rb
+++ b/_plugins/generate_sitemap.rb
@@ -114,6 +114,16 @@ module Jekyll
result += entry(url, post.date, get_attrs(post), site)
end
+ for model_name in site.config['jekyll_models'] do
+ models = site.site_payload['site'][model_name]
+ for model in models do
+ url = model['mdl_type'] + '/' + model['mdl_name']
+ url = '/' + url unless url =~ /^\//
+ url = url[0..-11] if url=~/\/index.html$/
+ result += entry(url, model['timestamp'], Hash.new, site)
+ end
+ end
+
result
end
To apply the patch: Create a test.patch
file and run patch -p0 -i test.patch
.