nanocでsitemapを自動生成する
nanocについては以前書いていた記事が2012/1/24なので3年ぶり?でしょうか。
そもそも色々忙しすぎてこのサイト自体更新してないわけですが、最近は多少時間が取れるようになってhttp://linuxc.infoを更新を少しづつしています。
そしてふとgoogle webmaster toolを入れてsitemapが必要らしいので調べるとnanocで自動生成出来るとの事で早速試してみました。
builder
gemでbuilderが必要なのでインストールしてください。
helperのXMLSitemapを使用する
nanocにはhelperという追加の機能があります。
またnanoc自体がデフォルトで幾つかのhelperを持っていますが、XMLSitemapはこのデフォルトのhelperです。
lib/default.rbに以下を追加します。
include Nanoc3::Helpers::XMLSitemap
URLの設定
config.yamlにURLを追加します。nanocはURL自体は知らなくても問題ないですがsitemapを作る場合には必要です。
自分の場合はhttp://linuxc.infoにします。
この時注意事項として最後のスラッシュ'/'は必要ありません。あっても問題ないですがsitemapに http://linuxc.info//startup/ となってちょっとださいです。
config.yaml
base_url: http://linuxc.info
content/sitemap.xml
content/sitemap.xmlを作ります。この内容をそのままコピペで。
<%= xml_sitemap :items => @items.reject{ |i| i[:is_hidden] || i.binary? } %>
Rules
Rulesにsitemapを作るルールを追加します。
どうも既存のcompile、routeよりも前に追加する必要があるようです。
Rules
compile 'sitemap' do filter :erb end route 'sitemap' do item.identifier.chop + '.xml' end
compile
あとはいつもの様にcompileしてエラーがでなければOK。
作成されたsitemapをアップロードしましょう。
ちなみに、content以下には存在しているけど公開していないコンテントがあれば、これもsitemapに追加されるので注意!
output/sitemap.xmlを自分で編集して削除するのを忘れずに。