Your Middleman blog should create a sitemap.xml
If your website runs on Middleman like this website (at time of writing) you might want to create a nice sitemap.xml for search engines to know their way on your site. This article shows how.
Create a source file source/sitemap.xml.builder
.
xml.instruct!
xml.urlset 'xmlns' => "http://www.sitemaps.org/schemas/sitemap/0.9" do
sitemap.resources.select { |page| page.destination_path =~ /\.html/ && page.data.noindex != true }.each do |page|
xml.url do
xml.loc URI.join(settings.casper[:blog][:url], page.destination_path)
last_mod = if page.path.start_with?('articles/')
File.mtime(page.source_file).to_time
else
Time.now
end
xml.lastmod last_mod.iso8601
xml.changefreq page.data.changefreq || "monthly"
xml.priority page.data.priority || "0.5"
end
end
end
This is a file using builder markup to generate XML. It traverses the Middleman Sitemap (that contains all your compiled files) to include all files in your final sitemap.xml
.
If you want to exclude certain files from your sitemap. Use the following frontmatter:
---
noindex: true
---
<html>...