93 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
| ---
 | ||
| layout: docs
 | ||
| title: Extras
 | ||
| prev_section: plugins
 | ||
| next_section: github-pages
 | ||
| permalink: /docs/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](http://github.com/remi/maruku).
 | ||
| 
 | ||
| ## 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](http://github.com/rtomayko/rdiscount) instead
 | ||
| of [Maruku](http://github.com/bhollis/maruku) for Markdown, just make sure you have
 | ||
| it installed:
 | ||
| 
 | ||
| {% highlight bash %}
 | ||
| $ [sudo] gem install rdiscount
 | ||
| {% endhighlight %}
 | ||
| 
 | ||
| And then specify RDiscount as the Markdown engine in your `_config.yml` file to
 | ||
| have Jekyll run with that option.
 | ||
| 
 | ||
| {% highlight yaml %}
 | ||
| # In _config.yml
 | ||
| markdown: rdiscount
 | ||
| {% endhighlight %}
 | ||
| 
 | ||
| ### Kramdown
 | ||
| 
 | ||
| You can also use [Kramdown](http://kramdown.rubyforge.org/) instead of Maruku
 | ||
| for Markdown. Make sure that Kramdown is installed:
 | ||
| 
 | ||
| {% highlight bash %}
 | ||
| $ [sudo] gem install kramdown
 | ||
| {% endhighlight %}
 | ||
| 
 | ||
| Then you can specify Kramdown as the Markdown engine in `_config.yml`.
 | ||
| 
 | ||
| {% highlight yaml %}
 | ||
| # In _config.yml
 | ||
| markdown: kramdown
 | ||
| {% endhighlight %}
 | ||
| 
 | ||
| Kramdown has various options for customizing the HTML output. The
 | ||
| [Configuration](/docs/configuration/) page lists the default options used by
 | ||
| Jekyll. A complete list of options is also available on the [Kramdown
 | ||
| website](http://kramdown.rubyforge.org/options.html).
 | ||
| 
 | ||
| ### 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:
 | ||
| 
 | ||
| {% highlight ruby %}
 | ||
| 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
 | ||
| {% endhighlight %}
 | ||
| 
 | ||
| Once you've got that setup, ask Jekyll to use your custom markdown parser in
 | ||
| your `_config.yml` file:
 | ||
| 
 | ||
| {% highlight yaml %}
 | ||
| markdown: MyCustomParser
 | ||
| {% endhighlight %}
 | ||
| 
 | ||
| (Note that this **is case-sensitive**, and is only the piece after
 | ||
| `Jekyll::Converters::Markdown`.) And there you are!
 |