cossssmin/gridsome-starter-bleda

Cover photo for post

ItsJamesMurray opened this issue · 4 comments

Hiya!

How am I able to reference a local image for the cover photo in the frontmatter rather than an externally hosted image?

For example, I have my post in content/posts/example-post.md. I have a photo I'd like to set as the cover photo in content/posts/img/header.jpg. Setting the frontmatter as cover: './img/header.jpg' does not work even though it will work if I reference it like that in the markdown post itself.

Thanks in advance!

Hi everyone! Bumping this up :)

Hi there! This isn't something specific to this starter, I suggest asking this in the Gridsome repo or on their Discord channel. Might have to do with either core Gridsome or the markdown source plugin.

@ItsJamesMurray A heavy-handed work around for this is to place your cover images under the static/ directory.

*for now, until it's fixed properly

Here's a workaround I came across in case anyone else is still having this issue.

I got it to work with the following Gridsome plugin:
https://gridsome.org/plugins/gridsome-plugin-blog-cover

Detailed Instructions

1.) Add gridsome-plugin-blog-cover": "^0.0.1-beta, to your package.json.
2.) Run yarn install
3.) In your blog post have your image setup like so: cover: ./image-name.png
4.) In the metadata portion of Post.vue, replace it with this.

ogImageUrl() {
        let coverObj =  this.$page.post.cover
        if (coverObj) {
           return `${this.config.siteUrl + coverObj.src}`
        } else {
          return `${this.config.siteUrl}/static/images/sharing-card.png`
        }
      }

5.) Run gridsome develop and it should load the image.