CodeRay

CodeRay is an encoding-aware, syntax highlighter that supports the languages listed below.

C

C++

Clojure

CSS

Delphi

diff

ERB

Go

Groovy

HAML

HTML

Java

JavaScript

JSON

Lua

PHP

Python

Ruby

Sass

SQL

Taskpaper

XML

YAML

Install CodeRay

To use CodeRay with Asciidoctor, you need the coderay RubyGem. You can use one of the following methods to install CodeRay.

Install using gem (all systems)
$ gem install coderay
Install using apt-get (Debian-based systems)
$ sudo apt-get install ruby-coderay
Install using dnf (Fedora-based systems)
$ sudo dnf install rubygem-coderay

Activate CodeRay

Once you’ve installed the RubyGem, assign the coderay value to the source-highlighter attribute in the document header to activate it.

:source-highlighter: coderay

CodeRay attributes

You can further customize the source block output with additional CodeRay attributes.

coderay-css

Controls what method is used for applying CSS to the tokens. Can be class or style. Default: class.

coderay-linenums-mode

Controls how line numbers are laid out. Can be table or inline. If line wrapping is enabled on preformatted blocks (i.e., prewrap), and you want to use line numbering on source blocks, you must set the value of this attribute to inline in order for the numbers to line up properly with their target lines. Default: table.

Example 1. Customizing a source block with CodeRay line numbers
:source-highlighter: coderay
:coderay-linenums-mode: inline

[source%linenums,ruby]
----
ORDERED_LIST_KEYWORDS = {
  'loweralpha' => 'a',
  'lowerroman' => 'i',
  'upperalpha' => 'A',
  'upperroman' => 'I'
   #'lowergreek' => 'a'
   #'arabic'     => '1'
   #'decimal'    => '1'
}
----

See the CodeRay stylesheet section to learn about the coderay-css attribute.