summaryrefslogtreecommitdiff
path: root/docs/modules/syntax-highlighting/pages/coderay.adoc
blob: 7bd09251432b5f7f6dd7caf3f3f3d2f560ed8186 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
= 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.
////