This post mentions key differences of code highlighters in jekyll (that is Pygment and Rouge). It contains instructions to change default Rouge highlighter to in Jekyll to Pygments highlighter along with list of languages with keywords for Jekyll Code Highlighter.

Rouge vs Pygments

  • Two Options: Rouge and Pygments.
  • Since jekyll is written in ruby, Rouge is implemented in ruby based on pygments by Jekyll team.
  • Rouge Languages are less than Pygment Languages
  • Pygment needs Python with Ruby, while Rouge only needs Ruby
  • Typically a Jekyll installation uses Rouge Highlighter which is recommended also.

Changing Highlighter to Pygments

If you want to use Pygments based syntax highlighting, you need to install Python, pip and python base of pygments.rb.

  • Install Python version 2 and 3 both
    • Set system path so that python runs from shell.
    • Use python --version and python3 --version to check.
  • Pip is a tool for installing and managing Python packages, similar to Ruby Gems. Get get-pip.py and run python get-pip.py to install.
  • Nice windows installation article here, for linux installation article here and here.
  • Install Pip using sudo apt-get install python-pip and sudo apt-get install python3-pip
  • Install Python base of Pygments.rb using sudo python -m pip install Pygments as well as sudo apt-get install python-pygments and sudo apt-get install python3-pygments
  • Add gem 'pygments.rb', '~> 1.0.0' in gemfile and _config,yml with bundle update
  • Execute pygmentize -S default -f html > pygments.css to generate pygments.css file in assets/css path
  • Add <link href="/assets/css/pygments.css /> to link to pygments in head.html

Use sample R code for test

{% highlight r %}  
data("iris")
plot(iris$Sepal.Length ~ iris$Sepal.Width)
{% endhighlight %}
data("iris")
plot(iris$Sepal.Length ~ iris$Sepal.Width)

List of supported languages and lexers in Rouge

List of the supported languages and lexers based on URL follows:

Notes:

  • The canonical, always-up-to-date list of lexers can be found by running rougify list.
  • You can use aliases defined in next list to setup code highligting in markdown of post

Code Highlighter Languages

  • actionscript: ActionScript [aliases: as,as3]
  • apache: configuration files for Apache web server
  • apiblueprint: Markdown based API description language. [aliases: apiblueprint,apib]
  • applescript: The AppleScript scripting language by Apple Inc. (http://developer.apple.com/applescript/)
  • biml: BIML, Business Intelligence Markup Language
  • c: The C programming language
  • ceylon: Say more, more clearly.
  • cfscript: CFScript, the CFML scripting language [aliases: cfc]
  • clojure: The Clojure programming language (clojure.org) [aliases: clj,cljs]
  • cmake: The cross-platform, open-source build system
  • coffeescript: The Coffeescript programming language (coffeescript.org) [aliases: coffee,coffee-script]
  • common_lisp: The Common Lisp variant of Lisp (common-lisp.net) [aliases: cl,common-lisp,elisp,emacs-lisp]
  • conf: A generic lexer for configuration files [aliases: config,configuration]
  • coq: Coq (coq.inria.fr)
  • cpp: The C++ programming language [aliases: c++]
  • csharp: a multi-paradigm language targeting .NET [aliases: c#,cs]
  • css: Cascading Style Sheets, used to style web pages
  • d: The D programming language(dlang.org) [aliases: dlang]
  • dart: The Dart programming language (dartlang.com)
  • diff: Lexes unified diffs or patches [aliases: patch,udiff]
  • eiffel: Eiffel programming language
  • elixir: Elixir language (elixir-lang.org) [aliases: elixir,exs]
  • erb: Embedded ruby template files [aliases: eruby,rhtml]
  • erlang: The Erlang programming language (erlang.org) [aliases: erl]
  • factor: Factor, the practical stack language (factorcode.org)
  • fortran: Fortran 95 Programming Language
  • gherkin: A business-readable spec DSL ( github.com/cucumber/cucumber/wiki/Gherkin ) [aliases: cucumber,behat]
  • glsl: The GLSL shader language
  • go: The Go programming language (http://golang.org) [aliases: go,golang]
  • gradle: A powerful build system for the JVM
  • groovy: The Groovy programming language (http://www.groovy-lang.org/)
  • haml: The Haml templating system for Ruby (haml.info) [aliases: HAML]
  • handlebars: the Handlebars and Mustache templating languages [aliases: hbs,mustache]
  • haskell: The Haskell programming language (haskell.org) [aliases: hs]
  • html: HTML, the markup language of the web
  • http: http requests and responses
  • ini: the INI configuration format
  • io: The IO programming language (http://iolanguage.com)
  • java: The Java programming language (java.com)
  • javascript: JavaScript, the browser scripting language [aliases: js]
  • jinja: Django/Jinja template engine (jinja.pocoo.org) [aliases: django]
  • json: JavaScript Object Notation (json.org)
  • json-doc: JavaScript Object Notation with extenstions for documentation
  • jsonnet: An elegant, formally-specified config language for JSON
  • julia: The Julia programming language [aliases: jl]
  • kotlin: Kotlin http://kotlinlang.org
  • liquid: Liquid is a templating engine for Ruby (liquidmarkup.org)
  • literate_coffeescript: Literate coffeescript [aliases: litcoffee]
  • literate_haskell: Literate haskell [aliases: lithaskell,lhaskell,lhs]
  • llvm: The LLVM Compiler Infrastructure (http://llvm.org/)
  • lua: Lua (http://www.lua.org)
  • make: Makefile syntax [aliases: makefile,mf,gnumake,bsdmake]
  • markdown: Markdown, a light-weight markup language for authors [aliases: md,mkd]
  • matlab: Matlab [aliases: m]
  • moonscript: Moonscript (http://www.moonscript.org) [aliases: moon]
  • nasm: Netwide Assembler
  • nginx: configuration files for the nginx web server (nginx.org)
  • nim: The Nim programming language (http://nim-lang.org/) [aliases: nimrod]
  • objective_c: an extension of C commonly used to write Apple software [aliases: objc]
  • ocaml: Objective CAML (ocaml.org)
  • pascal: a procedural programming language commonly used as a teaching language.
  • perl: The Perl scripting language (perl.org) [aliases: pl]
  • php: The PHP scripting language (php.net) [aliases: php,php3,php4,php5]
  • plaintext: A boring lexer that doesn’t highlight anything [aliases: text]
  • powershell: powershell [aliases: posh]
  • praat: The Praat scripting language (praat.org)
  • prolog: The Prolog programming language (http://en.wikipedia.org/wiki/Prolog) [aliases: prolog]
  • properties: .properties config files for Java
  • protouf: Google’s language-neutral, platform-neutral, extensible mechanism for serializing structured data [aliases: proto]
  • puppet: The Puppet configuration management language (puppetlabs.org) [aliases: pp]
  • python: The Python programming language (python.org) [aliases: py]
  • qml: QML, a UI markup language [aliases: qml]
  • r: The R statistics language (r-project.org) [aliases: r,R,s,S]
  • racket: Racket is a Lisp descended from Scheme (racket-lang.org)
  • ruby: The Ruby programming language (ruby-lang.org) [aliases: rb]
  • rust: The Rust programming language (rust-lang.org) [aliases: rs]
  • sass: The Sass stylesheet language language (sass-lang.com)
  • scala: The Scala programming language (scala-lang.org) [aliases: scala]
  • scheme: The Scheme variant of Lisp
  • scss: SCSS stylesheets (sass-lang.com)
  • sed: sed, the ultimate stream editor
  • shell: Various shell languages, including sh and bash [aliases: bash,zsh,ksh,sh]
  • shell_session: A generic lexer for shell session and command line [aliases: terminal,console]
  • slim: The Slim template language
  • smalltalk: The Smalltalk programming language [aliases: st,squeak]
  • smarty: Smarty Template Engine [aliases: smarty]
  • sml: Standard ML [aliases: ml]
  • sql: Structured Query Language, for relational databases
  • swift: Multi paradigm, compiled programming language developed by Apple for iOS and OS X development.(developer.apple.com/swift)
  • tap: Test Anything Protocol [aliases: tap]
  • tcl: The Tool Command Language (tcl.tk)
  • tex: The TeX typesetting system [aliases: TeX,LaTeX,latex]
  • toml: the TOML configuration format (https://github.com/mojombo/toml)
  • tulip: The tulip programming language http://github.com/jneen/tulip [aliases: tlp]
  • twig: Twig template engine (twig.sensiolabs.org)
  • typescript: TypeScript, a superset of JavaScript [aliases: ts]
  • vb: Visual Basic [aliases: visualbasic]
  • verilog: The System Verilog hardware description language
  • viml: VimL, the scripting language for the Vim editor (vim.org) [aliases: vim,vimscript,ex]
  • xml: XML
  • yaml: Yaml Ain’t Markup Language (yaml.org) [aliases: yml]