Edmund1645 / gridsome-plugin-blog-cover

Automatically generate cover images for your Gridsome blog posts 🔁 🏞
GNU General Public License v3.0
6 stars 2 forks source link

gridsome-plugin-blog-cover

Automatically create cover images for your blog posts

Installation

npm install gridsome-plugin-blog-cover

Setup

Ensure you have a Cloudinary account.

Important

Before using this plugin, at least one of your existing contents need to have a cover image field set. This is is because Gridsome ignores an update to a node when you pass new fields that are non-existent. In other words, ensure a cover image field can be queried in the GraphQL explorer before setting up the plugin. Cheers 🎉.

  plugins: [
    //...
    {
      use: 'gridsome-plugin-blog-cover',
      options: {
        typeName: 'Post',
        outputDir: './content/images', 
        domain: 'https://example.com',
        coverField: 'cover_image',
        slugField: 'path',
        cloudName: process.env.CLOUDINARY_CLOUD_NAME,
        apiKey: process.env.CLOUDINARY_API_KEY,
        apiSecret: process.env.CLOUDINARY_API_SECRET,
        uploadFolder: 'covers'
      }
    }
  ]

Plugin options

typeName [required]

The collection name for your posts.

outputDir [required]

The directory to generate the cover images in, this should be relative to your project's root directory

domain [required]

The url of your blog site

coverField [required]

The field on the node used for cover images

cloudName [required]

Your cloudinary cloud name

apiKey [required]

Your cloudinary API key

apiSecret [required]

Your cloudinary API secret

uploadFolder

The folder to use for all uploads on Cloudinary

border

Have a thin white border around the content

backgroundColors

An array of Hex color codes to use for backgrounds

imgHeight

A desired minimum height for the image

imgWidth

A desired minmum width for the image

productionOnly

In a case where your posts are increasing, generating images and uploading can take time. use this to limit it to production builds only.

Usage

<page-query>
query{
  posts: allPost{
    edges{
      node{
        id
        title
        cover_image # or your specified cover field
      }
    }
  }
}
</page-query>

Example

test Image

Please support me on Patreon if you find this package helpful :)

Become a Patron!