I am hosting all of my personal blogs on GitHub Pages now (here are some reasons why: ‘Static HTML is the new black’). With it comes a challenge when I try to share new posts on social media.

I want to have a nice share dialog with description and image of my blog post. Like so:

Share dialog

In order to archive this, I had to add some code to my Jekyll templates and implement some workarounds with urls and domain configuration. That’s how I did it.

First, I added meta tag generation to a head part of my post html:

I get all the open graph meta tags being generated as FB and other social media systems expect it to:

But once I try to share my blog post or scrape url with Open Graph Object Debugger I get Error parsing input URL, no data was cached, or no data was scraped.:

Error parsing input URL, no data was cached, or no data was scraped.

After spending some time searching for the reasons why this is happening, I found that, Github sometimes return a 302 (Redirect status code) instead of a 200 (OK) in order to avoid DDoS attacks. Same issue is described in this blog post.

To fix it, in addition to GitHub’s IPs I’ve added www subdomain through CNAME pointing to my GitHub address lenabarinova.github.io in my domain configuration.

Domain configuration

Now I use url with www prefix when I want to share my blog post on social media and it works just fine - I get desirable share dialog:

Scraper works

With this workaround I can share my posts using nice summary and image in a share dialog.


Update 10/17/2015

By the way in my gh-pages branch on a GitHub I have CNAME configured using subdomain + domain, like this: www.bebetterdeveloper.com

CNAME