Nプログラマです。
今回は、プラグインを使ってサイトマップを生成したので、備忘録として残します。
少しずつですが、作っているサイトもサイトらしくなってきています。
Jekyllで作っているサイト: https://editor.nprog256.net
事前の準備
- Jekyllの環境 (docker)(環境構築の記事はこちら)
利用するプラグイン
jekyll-sitemap
設定するだけで、ビルドするたびにsitemap.xmlを生成してくれるプラグインです。
設定項目も2コだけなので、最初に設定しておいたほうがいいです。
設定(_config.yml)
今回設定する項目はurlとpluginsです。
yaml形式なので、pluginsの記述はインデントに注意しましょう。
url
自分の公開するサイトのurlを入力します。
この設定はサイトのURLとして使われていますが、サイトマップに出力されるURLにも使われます。
プラグインの設定
プラグインの設定方法は、Jekyllのバージョンによって記述方法が異なります。
利用しているバージョンを確認してから記述します。
バージョン >= 3.5.0 の場合
この記事を書いている時点で3.8.5でしたので、pluginsを使います。
plugins:
- jekyll-sitemap
バージョン < 3.5.0 の場合
pluginsの代わりにgemsを使います。
設定はこんな感じ。
gems:
- jekyll-sitemap
sitemap.xmlを生成する
プラグインの設定が済んでいるとdocker-composeで起動 or 再起動させると、出力先フォルダにsitemap.xmlが生成されているはずです。
pluginの設定後は記事を編集する毎に出力されるようになります。
ただ、中身を確認してみるとURLが0.0.0.0:4000
になっていると思います。
(環境によって違うかもしれません)
生成されたsitemap.xmlの一部
<loc>http://0.0.0.0:4000/news/2019/02/08/information-editor-blog-release.html</loc>
<lastmod>2019-02-08T21:49:50+09:00</lastmod>
</url>
これは本番用を出力するbuildコマンドを使えば、_config.ymlに設定されたurlが出力されます。
コンテナでビルド
今回使った方法は2つです。どちらも同じ結果になります。
方法1: コンテナに入ってビルド
コンテナに入る
docker-compose exec jekyll sh
buildコマンドを実行
jekyll build -s /usr/src/app
方法2: docker-compseで実行するコマンドを渡す
こちらを使うとコマンドは長いですが、コンテナの中に入らなくてもbuildコマンドを実行することができます。
service_jekyll
がサービス名、jekyll build -s /usr/src/app
が実行するコマンドになります。
docker-compose exec service_jekyll jekyll build -s /usr/src/app
buildの出力先はコマンド実行しているパスと同じところの_siteディレクトリに出力されます。
出力先はデフォルトの設定で./_siteになっているので、変更する時は_config.ymlで設定しましょう。
出力先の設定例 (公式のDefault Configurationより)
destination: 出力するパス(デフォルトは./_site)
終わりに
今回は、pluginを使ったサイトマップの生成についての内容でした。
あとは生成されたsitemap.xmlをGoogleのサーチコンソールなどに登録しておけばいいかと思います。
他にも設定できる項目があるのですが、それは機会があれば別記事で書いてみたいと思います。
それでは、このへんで。
バイナリー!
参考
Jekyll
doc
- Default Configuration (設定のデフォルト値)

- 公式で紹介されているプラグイン
Generatorsのトコロにある。

plugin
- jekyll-sitemap