# Octopress Escape Code Automatically escape code blocks so you can use liquid tags without worry having to surround them with unsightly `{% raw %}` and `{% endraw %}` tags. This escapes code block created with `{% highlight %}`, `{% codeblock %}`, code fences, Markdown indented code blocks, and in-line back tick code tags. [![Build Status](https://travis-ci.org/octopress/escape-code.svg)](https://travis-ci.org/octopress/escape-code) [![Gem Version](http://img.shields.io/gem/v/octopress-escape-code.svg)](https://rubygems.org/gems/octopress-escape-code) [![License](http://img.shields.io/:license-mit-blue.svg)](http://octopress.mit-license.org) ## Installation ### Using Bundler Add this gem to your site's Gemfile in the `:jekyll_plugins` group: group :jekyll_plugins do gem 'octopress-escape-code' end Then install the gem with Bundler $ bundle ### Manual Installation $ gem install octopress-escape-code Then add the gem to your Jekyll configuration. gems: -octopress-escape-code ### Configuration To escape code blocks on a single page, add this configuration to the page's YAML front-matter. escape_code: true If you prefer, you can enable it on a site-wide basis. // in Jekyll's _config.yml escape_code: true Adding `escape_code: false` any the page's YAML front-matter will disable code escaping for that page. ## Usage ### Code plugins Before Jekyll parses your pages and posts through Liquid, code is automatically wrapped with `{% raw %}` blocks, ensuring that their contents aren't parsed by Liquid. For example, a `{% highlight %}` block's contents are wrapped like this. {% highlight html %}{% raw %}
{{ post.content }}
{% endraw %}{% endhighlight %} The `{% highlight %}` block is still interpreted by Liquid, but the contents are escaped. This will also escape the [Octopress codeblock](https://github.com/octopress/codeblock) plugin. Some Markdown processors and the [Octopress codefence](https://github.com/octopress/codefence) plugin render code blocks which are surrounded by three back ticks. These are also wrapped with `{% raw %}` tags. {% raw %} ```html
{{ post.content }}
``` {% endraw %} Liquid sees the raw tags and ignores the contents, but the code fences are still interpreted. ### Standard Markdown code If you are using Markdown, you may create a code blocks by indenting four spaces or a single tab. These code blocks are escaped like this. ``` {% raw %}
{{ post.content }}
{% endraw %} ``` You can also define in-line code tags by surrounding text with back ticks, like this `` `some code` `` which are automatically escaped as well. This inline {% raw %}``{% endraw %} tag is escaped. This works with double back tick code tags as well. ## Contributing 1. Fork it ( https://github.com/octopress/escape-code/fork ) 2. Create your feature branch (`git checkout -b my-new-feature`) 3. Commit your changes (`git commit -am 'Add some feature'`) 4. Push to the branch (`git push origin my-new-feature`) 5. Create a new Pull Request