rescuecreative rescuecreative - 4 months ago 50
Markdown Question

Escaping double curly braces inside a markdown code block in Jekyll

I'm using Jekyll to create a documentation site wherein I am trying to document some code that contains handlebars-like syntax. For example

{{foo}}
. The problem is that Jekyll uses liquid tags and no matter what I do, my double curlies are getting ripped out by the liquid processor.

By the way, I'm using kramdown as the markdown processor.

Here is something I've tried:

{% highlight html linenos %}
Hello, my name is {{name}}.
{% endhighlight %}


This one removes the {{name}} section completely because it thinks it's a reference to a liquid variable.

I also tried this:

{% highlight html linenos %}
Hello, my name is \{\{name\}\}.
{% endhighlight %}


In this case, I'm trying to escape the curly braces but the result is that the slashes get rendered into the page.

I even tried this:

{% highlight html linenos %}
Hello, my name is <span>{</span>{name}}.
{% endhighlight %}


Admittedly this one was pretty dumb. In this case, because I've specified the syntax as html (which it needs to be), the span tag gets rendered into the page.

So how in the world can I resolve this?

Answer

You're looking for the {% raw %} tag.

{% raw %}
Hello, my name is {{name}}.
{% endraw %}