Unleash the power of Kramdown with Pygments and Typogruby in Jekyll.
If you want to know, read why it is such a good idea to use Kramdown with Pygments.
Add krampygs.rb
to your _plugins
directory, and the following lines
markdown_ext: foo
markdown: kramdown
pygments: true
to your _config.yml
. The bogus foo
extension is a workaround to get Jekyll ignore its own Markdown converters and use instead the custom converter provided (which explicitly looks for .md
files).
Code in your pages can now be syntax highlighted using the power of Pygments.
For example fenced code
~~~ ruby
print "Hello World"
~~~
Or inline code like this: `\section{foo}`{:.language-latex}
You can also define a global default for a whole site adding
kramdown:
default_lang: python
to your _config.yml
; or, for a single page, by adding something like
{::options coderay_default_lang="fortran" /}
near the top of a page. (No, coderay is not being used, but that was the easiest hack I could find to get the value of the option into Kramdown.)
Github flavor markdown syntax is also supported by adding
kramdown:
input: GFM
to your _config.yml
. For example GFM code
```ruby
print "Hello World"
```
- ruby 2.0.0p247
- jekyll (1.1.2)
- kramdown (1.1.0)
- pygments.rb (0.5.2)
- typogruby (1.0.15)
To Matthias for his initial plugin idea, and his help getting it fixed to work with Jekyll 1.x.
- Randy Lai added GFM support.