Extras

There are a number of (optional) extra features that Jekyll supports that you may want to install, depending on how you plan to use Jekyll.

LaTeX Support

Maruku comes with optional support for LaTeX to PNG rendering via blahtex (Version 0.6) which must be in your $PATH along with dvips. If you need Maruku to not assume a fixed location for dvips, check out Remi’s Maruku fork.

Alternative Markdown Processors

While Jekyll defaults to using Maruku for Markdown conversion, you may use one of the other three pre-defined markdown parsers or define your own.

RDiscount

If you prefer to use RDiscount instead of Maruku for Markdown, just make sure you have it installed:

$ [sudo] gem install rdiscount

And then specify RDiscount as the Markdown engine in your _config.yml file to have Jekyll run with that option.

# In _config.yml
markdown: rdiscount

Kramdown

You can also use Kramdown instead of Maruku for Markdown. Make sure that Kramdown is installed:

$ [sudo] gem install kramdown

Then you can specify Kramdown as the Markdown engine in _config.yml.

# In _config.yml
markdown: kramdown

Kramdown has various options for customizing the HTML output. The Configuration page lists the default options used by Jekyll. A complete list of options is also available on the Kramdown website.

User-Defined

So, you’re totally at odds with our four built-in markdown parsers, eh? No sweat. You can define one as a plugin:

require 'jekyll'
require 'some_renderer'

class Jekyll::Converters::Markdown::MyCustomParser
  def initialize(config)
    @site_config = config
  end

  def convert(content)
    # (this _must_ return the resulting String after the rendering)
    SomeRenderer.new(@site_config).to_html(content)
  end
end

Once you’ve got that setup, ask Jekyll to use your custom markdown parser in your _config.yml file:

markdown: MyCustomParser

(Note that this is case-sensitive, and is only the piece after Jekyll::Converters::Markdown.) And there you are!