= CodeRay
:url-coderay: http://coderay.rubychan.de/
:url-coderay-gem: https://rubygems.org/gems/coderay

{url-coderay}[CodeRay^] is an encoding-aware, syntax highlighter that supports the languages listed below.

[%autowidth,cols="3*",grid=none,frame=none]
|===
| 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 {url-coderay-gem}[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,asciidoc]
----
: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`.

.Customizing a source block with CodeRay line numbers
[source,asciidoc]
....
:source-highlighter: coderay
:coderay-linenums-mode: inline

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

See the xref:html-backend:source-highlighting-stylesheets.adoc#coderay[CodeRay stylesheet section] to learn about the `coderay-css` attribute.

////
Note: I'm not getting this to work. Need to come back and do some quality assurance.
////
