[READ-ONLY] Mirror of https://github.com/andrioid/gatsby-plugin-social-cards. Automatically generates social preview cards for various social networks www.gatsbyjs.org/packages/gatsby-plugin-social-cards
0

Configure Feed

Select the types of activity you want to include in your feed.

JavaScript 100.0%
16 7 0

Clone this repository

https://git.vm.fail/andri.dk/gatsby-plugin-social-cards https://git.vm.fail/did:plc:dw5pghzk4o4atirg3bfve4qf
ssh://git@knot1.tangled.sh:2222/andri.dk/gatsby-plugin-social-cards ssh://git@knot1.tangled.sh:2222/did:plc:dw5pghzk4o4atirg3bfve4qf

For self-hosted knots, clone URLs may differ based on your setup.


README.md

gatsby-plugin-social-cards#

Automatically parses your posts and generates social cards for Twitter, Slack, Facebook and other sites.

To learn more about social-cards in general, check out open graph, twitter cards and this CSS tricks article on meta-tags for social.

How is this different from all the other plugins?#

  • It is much more customizable than the other plugins I've seen. You can change the cover, your author-image and select from (currently) two template-designs.
  • It uses React and SVG to generate an SVG that is processed to generate the resulting JPG image. That may sound complicated, but it allows us to do text-effects, shadows, overlays and much more.

Current Status: Beta#

I'm using this for andri.dk and it works for me, both locally and for Netlify builds. File an issue if you are having an problems getting this to run. It's either a bug, or lacking documentation. Both I can fix.

Should work for remark and mdx node types.

Features#

Designs#

There are two design available now, "card" and "default". But we can expand that later.

default design

card design

custom background

Custom Backgrounds#

You can put a cover frontmatter on your post, and we'll use that. Otherwise, we'll use a default-background that you can specify or if that fails, we'll use a fallback one.

Custom Author image#

If specified, an author image is shown on the image. That is also configurable.

Powerd by SVG, React and Sharp#

We use the same underlying library that powers gatsby-images to convert our React generated SVG files into images.

Install#

yarn add gatsby-plugin-social-cards
# or npm install --save gatsby-plugin-social-cards

How to use#

Configure our site to use the plugin by editing gatsby-config.js. You don't need to specify options.

plugins: [
	{
		'gatsby-plugin-social-cards',
	}
]

If you want to customise the look of the cards, try these options.

plugins: [
  {
    resolve: "gatsby-plugin-social-cards",
    options: {
      // ommit to skip
      authorImage: "./static/img/coffee-art.jpg",
      // image to use when no cover in frontmatter
      backgroundImage: "./static/img/hvitserkur.JPG",
      // author to use when no auth in frontmatter
      defaultAuthor: "Andri Óskarsson",
      // card design
      design: "default", // 'default' or 'card'
    },
  },
];

Then you need to add the meta tags to your site. For a more complete example of meta tags, check out seo.js from Kent C. Dodds.

import Helmet from 'react-helmet'

const image = node.frontmatter.socialcard

export const SEO = ({ postData, frontmatter = {}, metaImage, isBlogPost }) => (
	<Helmet>
		{/* Your other meta tags... */}
		<meta name="image" content={image} />
		<meta property="og:image" content={image} />
		<meta name="twitter:card" content="summary_large_image">
		<meta name="twitter:image" content={image} />
	</Helmet>
)

Pitfalls#

Fonts#

We use sharp to convert our SVG images to JPG. The means that the fonts available to you are limited to those of the build-machine.

VIPS image library#

Depending on your installation, SVG support in libvips (used by Sharp) might be missing.

It needs to be built with JPEG and SVG support.