Gatsby Book Launch

“The missing guide to the modern web” launches on Thursday, Sep 29th: Modular: The Web’s New Architecture

ContactSign Up for Free
Community Plugin
View plugin on GitHub

gatsby-source-blogger

Source plugin for pulling blog posts and pages into Gatsby from Blogger.

Install

npm install --save gatsby-source-blogger

Usage

module.exports = {
  plugins: [
    {
      resolve: 'gatsby-source-blogger',
      options: {
        apiKey: 'your-api-key',
        blogId: 'your-blog-id'
        }
      }
    }
  ]
}

Query Blog Posts

The plugin maps all JSON fields documented in the Blogger API Reference to GraphQL fields.

{
  allBloggerPost {
    edges {
      node {
        slug
        kind
        id
        blog{
          id
        }
        published
        updated
        url
        selfLink
        title
        content
        author{
          id
          displayName
          url
          image{
            url
          }
        }
        replies{
          totalItems
          selfLink
        }
        featuredImage{
          childImageSharp{
            ...
          }
        }
        images{
          url
        }
      }
    }
  }
}

Query Pages

{
  allBloggerPage {
    edges {
      node {
        slug
        kind
        id
        blog{
          id
        }
        published
        updated
        url
        selfLink
        title
        content
        author{
          id
          displayName
          url
          image{
            url
          }
        }
      }
    }
  }
}

Slug

The plugin adds additional slug field to both the GraphQL type from the current Blogger url taking the last segment without the .html extension:

https://my-domain.com/2019/02/this-is-my-post-slug.html
https://my-domain.com/p/this-is-my-page-slug.html

Markdown

Your Blogger posts and pages are available in Markdown format too; thanks to Gatsby Transformer Remark you can query MarkdownRemark child type and benefit to its additional fields like excerpt, time to read, etc.

{
  allBloggerPost {
    edges {
      node {
        slug
        ...
        childMarkdownRemark{
          frontmatter{
            title
            date
            slug
            featuredImageUrl
          }
          html
          excerpt
          timeToRead
        }
      }
    }
  }
}

Post featured image

By default, if available, the plugin download the post featured image and link it on the featuredImage node field and create the featuredImageUrl variable on the markdown front matter pointing to the original remote url.

© 2022 Gatsby, Inc.