A Jekyll plugin that automatically generates images that will be used when your links are shared on social media.
First install ImageMagick (and GhostScript if you don't supply your own font):
brew install pkg-config imagemagick [gs]
Haven't tried yet. If you have, please submit a PR.
Add gem "jekyll-gensocial" to the :jekyll_plugins group in your Gemfile:
# Gemfile
group :jekyll_plugins do
  gem "jekyll-gensocial"
end
Add these lines to your site's _config.yml:
# _config.yml
plugins:
  - jekyll-gensocial
You can customize the image's background layer and text appearance from your _config.yml.
# _config.yml
jekyll-gensocial:     # These are the default settings
  enabled: true       # Disables the output
  size:               # The size of the overall canvas
    width: 1920
    height: 1080
  background:         # The background image
    path: nil
  text:
    string: nil       # Overrides the post/page title
    font_path: nil    # Path to your custom font
    pointsize: 100    # Font size
    fill: "#000000"   # Font color
    rect:             # Text will appear inside this frame
      size:
        width: 1600
        height: 500
      origin:
        x: 150
        y: 100
Set the image front matter in the posts and pages that you want to generate images for.
# _posts/2020-03-19-macdevsclub.md
---
layout: post
title:  "Your #1 resource for building, distributing and selling Mac apps. Visit macdevs.club!"
date:   2020-03-19
categories: [swift-ui]
image: assets/img/macdevsclub.jpg
---
The contents of your post goes here.
After building the site, an image will appear in [your site's source]/assets/img/macdevsclub.jpg.
The plugin generates images in the source directory per default. This enables post-processors to minify and optimize the files if needed.
You can override the default settings on a per post/page basis.
# _posts/2020-03-19-macdevsclub.md
---
layout: post
title:  "Your #1 resource for building, distributing and selling Mac apps. Visit macdevs.club!"
date:   2020-03-19
categories: [swift-ui]
image: assets/img/macdevsclub.jpg
jekyll-gensocial:
  text:
    string: "Let's display something else"
    fill: "#ff0000" # And make it red
---
The contents of your post goes here.
# _config.yml
jekyll-gensocial:
  background:
    path: "_assets/img/gensocial_bg.jpg"
  text:
    fill: "#2d3748"
    font_path: "_assets/fonts/Lato-Regular.ttf"
Used in conjuction with the jekyll-seo-tag plugin, this automatically improves how your links look when shared online.
Instead of having to create a new image for every page and post, why not automate the process.
After checking out the repo, run script/bootstrap to install dependencies. Then, run bundle exec rake spec to run the tests.
To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in lib/jekyll-gensocial/version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.
Bug reports and pull requests are welcome on GitHub at https://github.com/boyvanamstel/jekyll-gensocial. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to behave appropriately.
The gem is available as open source under the terms of the MIT License.