= 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="4*",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 gem^].
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 gem, assign the `coderay` value to the `source-highlighter` attribute in the document header to activate it.

[,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

[%linenums,ruby]
----
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.
////
