[Jekyll] jekyll-sitemap プラグインを使ってみた

Jekyll Jekyll

Nプログラマです。

今回は、プラグインを使ってサイトマップを生成したので、備忘録として残します。
少しずつですが、作っているサイトもサイトらしくなってきています。
Jekyllで作っているサイト: https://editor.nprog256.net

事前の準備

利用するプラグイン

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 (設定のデフォルト値)
Default Configuration
Jekyll runs with the following configuration options by default. Alternative settings for these options can be explicitly specified in the configuration file or...
  • 公式で紹介されているプラグイン

Generatorsのトコロにある。

Plugins
Jekyll has a plugin system with hooks that allow you to create custom generated content specific to your site. You can run custom code for your site without hav...

plugin

  • jekyll-sitemap
jekyll/jekyll-sitemap
Jekyll plugin to silently generate a sitemaps.org compliant sitemap for your Jekyll site - jekyll/jekyll-sitemap
タイトルとURLをコピーしました