こんにちは,むぎやんです.
GatsbyJSで作成したこのサイトにRSSフィードを追加します.オフィシャルサイトに紹介されている設定のままだとサムネイルを指定できない(本文中の最初の画像になってしまう)ので,そのあたりに手を加えました.
RSSフィードとは
RSSやRSSフィードの詳細はどこか適当なサイトをみてください. フリー百科事典『ウィキペディア(Wikipedia)』とかIT用語辞典 e-Wordsとか.
この形式で提供しておけばフィードリーダーなどで最新の情報が表示されるようです.
プラグイン導入
RSSフィードを簡単に実現する手段として,オフィシャルプラグインが公開されています. Gatsbyオフィシャルサイトに従ってプラグインを導入します. 今回はgatsby-plugin-feedを使いました.
$ yarn add gatsby-plugin-feed
# npm install --save gatsby-plugin-feed
プラグインのReadMe通りでほぼほぼ動きました.このサイトではそれに加えて,オフィシャルサイトのソースも参考にgatsby-config.js
に設定を行いました.
コンフィグファイル編集
今回は,各記事のサムネイルを指定したいのでgatsby-config.js
に一部追記します.
module.exports = {
...
serialize: ({ query: { site, allMarkdownRemark } }) =>
allMarkdownRemark.edges.map(({ node }) => {
return {
title: node.frontmatter.title,
description: node.frontmatter.description || node.excerpt,
date: node.frontmatter.date,
url: site.siteMetadata.siteUrl + node.fields.slug,
guid: site.siteMetadata.siteUrl + node.fields.slug,
author: node.frontmatter.author.name,
enclosure: { url: site.siteMetadata.siteUrl + node.frontmatter.image.childImageSharp.fluid.src, type : `image/jpeg`, }, }
}),
...
}
url
- サムネイルにしたいファイルのURLを指定します.type
- urlで指定したファイルのMIMEタイプを指定します.
参考にしたのはRSS 2.0 Specificationとrssです.
動作確認
ビルドしてサイトにアップしてみました.Inoreaderで確認すると,↓な感じでバッチリ表示されてました.
Feedlyでも確認したかったのですが2時間経っても反映されず,,, → 3時間後ぐらいに確認できました.
補足
なお,Media RSSの<media:thumbnail>というのを使う方法もあるようです.今後,もし,仮に,気が向いたら調べてみます.