If you have a coding blog, you will need to show code snippets a lot of the time.
I will explain how to have syntax highlighting in Jekyll using Rouge with the kramdown markdown parser.
Requirements
- Jekyll version 3.0 or above (check using
bundle exec jekyll --version
) - If your version is less than 3.0 you need to install both kramdown and rouge.
gem install kramdown rouge
Jekyll Syntax Highlighting
If you don't have a _.config.yml
file then create it and add the following:
markdown: kramdown
kramdown:
input: GFM
auto_ids: true
hard_wrap: false
syntax_highlighter: rouge
This makes sure you are using kramdown and that everything is working properly. I think the above is just the default settings anyways but I like to make sure.
With Rouge, you have access to the rougify cli tool. To see all available syntax highlighting themes run rougify help style
. For example, it shows the following for me:
usage: rougify style [<theme-name>] [<options>]
....
....
available themes:
base16, base16.dark, base16.light, base16.monokai, base16.monokai.dark, base16.monokai.light, base16.solarized, base16.solarized.dark, base16.solarized.light, bw, colorful, github, gruvbox, gruvbox.dark, gruvbox.light, igorpro, magritte, molokai, monokai, monokai.sublime, pastie, thankful_eyes, tulip
From these themes, choose one you like. You can see a preview of the themes here.
You can view the css by running rougify style colorful
. Replace colorful with any of the available themes.
In your assets/css folder (create it if you don't have it), add a file syntax.css
. Copy and paste the styles generated by the rougify style
command from above. Alternatively, you can do rougify style colorful > assets/css/syntax.css
.
Make sure that you are properly linking the stylesheet in the HTML. In my example I would link <link href="/assets/css/syntax.css" rel="stylesheet" >
.
Important tip
If the syntax highlighting isn't responsive / wrapping correctly. Then add the following style in the syntax.css
stylehsheet
.highlighter-rouge .highlight pre.highlight {
overflow: auto;
}
How to do syntax highlighting in your blog posts.
In order to have syntax highlighting simply put your code in between 3 backticks on top and 3 backticks on the bottom. Right next to the 3 ticks on top, specify the language of the code you will be highlighting.
For example, pretend I was highlighting php code:
```php
//code here
```
Here is a list of all supported languages.