Jekyll Meta Includes

The Problem #

In Jekyll, I have a lot of code that will include a <meta> tag if a certian property is set.

The code for this looks terrible, and is terribly repetative.

{% if site.title %}
    <meta property="og:site_name" content="{{ site.title }}" />
{% endif %}

{% if page.url %}
    <meta property="og:url" content="{{ page.url }}" />
{% endif %}

{% if page.thumbnail %}
    <meta property="og:image" content="{{ page.thumbnail }}" />
{% endif %}

{% if page.date %}
    <meta property="article:published_time" content="{{ page.date }}" />
{% endif %}

Yuck!

The Solution #

I have come up with a solution!

Using Jekyll’s (new?) Include paramaters, I can create one file that checks
to see if a certian variable exists and – if so – will include the proper <meta> tag.

This file looks like this.

{% if include.content %}
<meta property="{{ include.property }}" content="{{ include.content }}" />
{% endif %}

Now, the code to include a list of meta tags looks much more readable.

{% include meta.html property="og:site_name" content=site.title %}
{% include meta.html property="og:url" content=page.url %}
{% include meta.html property="og:image" content=page.thumbnail %}
{% include meta.html property="article:published_time" content=page.date %}
 
13
Kudos
 
13
Kudos

Now read this

Jekyll Spaghetti Code

So, it’s probably just because I’m a WordPress guy, but after using Jekyll for a while, I feel like it’s primitive templating system breeds unmaintainable spaghetti code. I have lots of code duplicated in funny places, which is bad. I... Continue →