[Middleman 3] Middleman のテンプレートをつかって sitemap.xml を生成する

erb テンプレートをつかって、Sitemap XML を作成します。

% middleman version
Middleman 3.3.6

こちらで紹介されていました。

Understanding Middleman – the static site generator for faster prototyping – Author and responsive web developer Ben Frain

sitemap.xml.erb

こちらで公開されているソースを利用して、source/sitemap.xml.erb にテンプレートを作成します。

Sitemap (sitemaps.org) generator for Middleman

youdomain.com の箇所は、必要な値に書き換えます。

source/sitemap.xml.erb
<% pages = sitemap.resources.find_all{|p| p.source_file.match(/\.html/) } %>
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<% pages.each do |p| %>
  <url>
    <loc>http://youdomain.com/<%=p.destination_path.gsub('/index.html','')%></loc>
    <priority>0.7</priority>
  </url>
<% end %>
</urlset>

config.rb

sitemap.xml.erb に対して、テンプレートを無効にする設定を加えます。

Middleman: テンプレート

config.rb
page "/sitemap.xml", :layout => false

middleman build で /build にファイルが生成されました。