codnar 0.1.67 → 0.1.68

Sign up to get free protection for your applications and to get access to all the features.
data/doc/root.html CHANGED
@@ -7,6 +7,7 @@
7
7
  <embed src="codnar/data/yui/reset.css" type="x-codnar/file"/>
8
8
  <embed src="codnar/data/yui/base.css" type="x-codnar/file"/>
9
9
  <embed src="codnar/data/style.css" type="x-codnar/file"/>
10
+ <embed src="codnar/data/gvim.css" type="x-codnar/file"/>
10
11
  </style>
11
12
  </head>
12
13
  <body>
data/doc/system.markdown CHANGED
@@ -183,11 +183,11 @@ And here is the implementation:
183
183
 
184
184
  #### Syntax highlighting using GVIM ####
185
185
 
186
- If you have `gvim` istalled, it is possible to use it to generate syntax
187
- highlighting. This is a *slow* operation, as `gvim` was never meant to be used
188
- as a command-line tool. However, what it lacks in speed it compensates for in
189
- scope; almost any language you can think of has a `gvim` syntax highlighting
190
- definition. Here is a simple test that demonstrates using `gvim` for syntax
186
+ If you have GVim istalled, it is possible to use it to generate syntax
187
+ highlighting. This is a *slow* operation, as GVim was never meant to be used as
188
+ a command-line tool. However, what it lacks in speed it compensates for in
189
+ scope; almost any language you can think of has a GVim syntax highlighting
190
+ definition. Here is a simple test that demonstrates using GVim for syntax
191
191
  highlighting:
192
192
 
193
193
  [[test/gvim_highlight_syntax.rb|named_chunk_with_containers]]
@@ -208,6 +208,23 @@ And here is the implementation:
208
208
 
209
209
  [[lib/codnar/cache.rb|named_chunk_with_containers]]
210
210
 
211
+ #### Syntax highlighting using CodeRay ####
212
+
213
+ [CodeRay](http://coderay.rubychan.de/) is a Ruby gem that knows how to
214
+ highlight the syntax of many popular languages. It is much faster than using
215
+ GVim`but doesn't offer the huge range of programming languages offered by GVim
216
+ (for example, it does not currently offer shell script highlighting). If your
217
+ languages are covered by it, it may serve as a convenient replacement to the
218
+ slow GVim approach.
219
+
220
+ Here is a simple test that demonstrates using CodeRay for syntax highlighting:
221
+
222
+ [[test/coderay_highlight_syntax.rb|named_chunk_with_containers]]
223
+
224
+ And here is the implementation:
225
+
226
+ [[lib/codnar/coderay.rb|named_chunk_with_containers]]
227
+
211
228
  #### Syntax highlighting using Sunlight ####
212
229
 
213
230
  [Sunlight](http://sunlightjs.com/) offers a different approach for syntax
@@ -217,9 +234,8 @@ the DOM and convert it to highlighted HTML in the browser. This takes virtually
217
234
  no time when splitting the code, but requires recomputing highlighting for all
218
235
  the code chunks every time the HTML file is loaded. This can be pretty slow,
219
236
  especially if using a browser with a slow Javascript engine, like IE. However,
220
- given how slow GVIM is, this is a reasonable trade-off, at least for small
221
- projects. Since Sunlight is a new project, it doesn't offer the extensive
222
- coverage of different programming languages supported by GVIM.
237
+ this may be a reasonable trade-off, at least for small projects. Since Sunlight
238
+ is a new project, it supports a limited range of programming languages.
223
239
 
224
240
  Here is a simple test that demonstrates using Sunlight for syntax highlighting:
225
241
 
@@ -267,7 +283,7 @@ box".
267
283
  If one is willing to give up altogether on syntax highlighting and comment
268
284
  formatting, the system would be applicable as-is to any programming language.
269
285
  Properly highlighting almost any known programming language syntax would be a
270
- simple matter of passing the correct syntax parameter to GVIM.
286
+ simple matter of passing the correct syntax parameter to GVim.
271
287
 
272
288
  Properly formatting comments in additional mark-up formats would be trickier.
273
289
  First, a proper pattern needs to be established for extracting the comments
@@ -377,20 +393,35 @@ is very easy using GVim for syntax highlighting, as demonstrated here:
377
393
 
378
394
  [[GVim syntax highlighting formatting configurations|named_chunk_with_containers]]
379
395
 
380
- Here is a simple test demonstrating highlighting code syntax using `gvim`:
396
+ If you choose to use CSS classes instead of directly embedding fonts and colors
397
+ into the generated HTML, you will need a CSS stylesheet with the relevant
398
+ classes. Here is the default CSS stylesheet used by GVim:
399
+
400
+ [[lib/codnar/data/gvim.css|named_chunk_with_containers]]
401
+
402
+ #### Syntax highlighting using CodeRay ####
403
+
404
+ For supported programming languages, you may choose to use CodeRay instead of GVim.
405
+
406
+ [[CodeRay syntax highlighting formatting configurations|named_chunk_with_containers]]
407
+
408
+ If you choose to use CSS classes instead of directly embedding fonts and colors
409
+ into the generated HTML, you will need a CSS stylesheet with the relevant
410
+ classes. Here is the default CSS stylesheet used by CodeRay:
381
411
 
382
- [[test/format_code_gvim_configurations.rb|named_chunk_with_containers]]
412
+ [[lib/codnar/data/coderay.css|named_chunk_with_containers]]
383
413
 
384
414
  #### Syntax highlighting using Sunlight ####
385
415
 
386
- For small projects in languages supported by Sunlight, you may choose to use
387
- it instead of GVIM
416
+ For small projects in supported languages, you may choose to use Sunlight
417
+ instead of GVim.
388
418
 
389
419
  [[Sunlight syntax highlighting formatting configurations|named_chunk_with_containers]]
390
420
 
391
- Here is a simple test demonstrating highlighting code syntax using Sunlight:
421
+ Here is a simple test demonstrating highlighting code syntax using the
422
+ different configurations (GVim, CodeRay, or Sunlight):
392
423
 
393
- [[test/format_code_sunlight_configurations.rb|named_chunk_with_containers]]
424
+ [[test/format_code_configurations.rb|named_chunk_with_containers]]
394
425
 
395
426
  #### Chunk splitting ####
396
427
 
data/lib/codnar.rb CHANGED
@@ -1,10 +1,12 @@
1
1
  require "andand"
2
2
  require "base64"
3
3
  require "cgi"
4
+ require "coderay"
4
5
  require "digest/sha2"
5
6
  require "erb"
6
7
  require "fileutils"
7
8
  require "irb"
9
+ require "open3"
8
10
  require "rdiscount"
9
11
  require "rdoc/markup/to_html"
10
12
  require "tempfile"
@@ -18,6 +20,7 @@ require "olag/string_unindent"
18
20
 
19
21
  require "codnar/version"
20
22
 
23
+ require "codnar/coderay"
21
24
  require "codnar/hash_extensions"
22
25
  require "codnar/markdown"
23
26
  require "codnar/rdoc"
@@ -0,0 +1,17 @@
1
+ module Codnar
2
+
3
+ # Extend the CodeRay module.
4
+ module CodeRay
5
+
6
+ # Convert a sequence of classified code lines to HTML using CodeRay syntax
7
+ # highlighting. The options control the way CodeRay behaves (e.g., <tt>:css
8
+ # => :class</tt>).
9
+ def self.lines_to_html(lines, syntax, options = {})
10
+ return Formatter.merge_lines(lines, "html") do |payload|
11
+ ::CodeRay.scan(payload, syntax).div(options).chomp
12
+ end
13
+ end
14
+
15
+ end
16
+
17
+ end
@@ -0,0 +1,127 @@
1
+ /* Extracted from CodeRay output */
2
+
3
+ .CodeRay .line-numbers a {
4
+ text-decoration: inherit;
5
+ color: inherit;
6
+ }
7
+ .CodeRay {
8
+ background-color: hsl(0,0%,95%);
9
+ border: 1px solid silver;
10
+ color: black;
11
+ }
12
+ .CodeRay pre {
13
+ margin: 0px;
14
+ }
15
+
16
+ span.CodeRay { white-space: pre; border: 0px; padding: 2px; }
17
+
18
+ table.CodeRay { border-collapse: collapse; width: 100%; padding: 2px; }
19
+ table.CodeRay td { padding: 2px 4px; vertical-align: top; }
20
+
21
+ .CodeRay .line-numbers {
22
+ background-color: hsl(180,65%,90%);
23
+ color: gray;
24
+ text-align: right;
25
+ -webkit-user-select: none;
26
+ -moz-user-select: none;
27
+ user-select: none;
28
+ }
29
+ .CodeRay .line-numbers a {
30
+ background-color: hsl(180,65%,90%) !important;
31
+ color: gray !important;
32
+ text-decoration: none !important;
33
+ }
34
+ .CodeRay .line-numbers a:target { color: blue !important; }
35
+ .CodeRay .line-numbers .highlighted { color: red !important; }
36
+ .CodeRay .line-numbers .highlighted a { color: red !important; }
37
+ .CodeRay span.line-numbers { padding: 0px 4px; }
38
+ .CodeRay .line { display: block; float: left; width: 100%; }
39
+ .CodeRay .code { width: 100%; }
40
+ .CodeRay .code pre { overflow: auto; }
41
+
42
+ .CodeRay .debug { color: white !important; background: blue !important; }
43
+
44
+ .CodeRay .annotation { color:#007 }
45
+ .CodeRay .attribute-name { color:#b48 }
46
+ .CodeRay .attribute-value { color:#700 }
47
+ .CodeRay .binary { color:#509 }
48
+ .CodeRay .char .content { color:#D20 }
49
+ .CodeRay .char .delimiter { color:#710 }
50
+ .CodeRay .char { color:#D20 }
51
+ .CodeRay .class { color:#B06; font-weight:bold }
52
+ .CodeRay .class-variable { color:#369 }
53
+ .CodeRay .color { color:#0A0 }
54
+ .CodeRay .comment { color:#777 }
55
+ .CodeRay .comment .char { color:#444 }
56
+ .CodeRay .comment .delimiter { color:#444 }
57
+ .CodeRay .complex { color:#A08 }
58
+ .CodeRay .constant { color:#036; font-weight:bold }
59
+ .CodeRay .decorator { color:#B0B }
60
+ .CodeRay .definition { color:#099; font-weight:bold }
61
+ .CodeRay .delimiter { color:black }
62
+ .CodeRay .directive { color:#088; font-weight:bold }
63
+ .CodeRay .doc { color:#970 }
64
+ .CodeRay .doc-string { color:#D42; font-weight:bold }
65
+ .CodeRay .doctype { color:#34b }
66
+ .CodeRay .entity { color:#800; font-weight:bold }
67
+ .CodeRay .error { color:#F00; background-color:#FAA }
68
+ .CodeRay .escape { color:#666 }
69
+ .CodeRay .exception { color:#C00; font-weight:bold }
70
+ .CodeRay .float { color:#60E }
71
+ .CodeRay .function { color:#06B; font-weight:bold }
72
+ .CodeRay .global-variable { color:#d70 }
73
+ .CodeRay .hex { color:#02b }
74
+ .CodeRay .imaginary { color:#f00 }
75
+ .CodeRay .include { color:#B44; font-weight:bold }
76
+ .CodeRay .inline { background-color: hsla(0,0%,0%,0.07); color: black }
77
+ .CodeRay .inline-delimiter { font-weight: bold; color: #666 }
78
+ .CodeRay .instance-variable { color:#33B }
79
+ .CodeRay .integer { color:#00D }
80
+ .CodeRay .key .char { color: #60f }
81
+ .CodeRay .key .delimiter { color: #404 }
82
+ .CodeRay .key { color: #606 }
83
+ .CodeRay .keyword { color:#080; font-weight:bold }
84
+ .CodeRay .label { color:#970; font-weight:bold }
85
+ .CodeRay .local-variable { color:#963 }
86
+ .CodeRay .namespace { color:#707; font-weight:bold }
87
+ .CodeRay .octal { color:#40E }
88
+ .CodeRay .operator { }
89
+ .CodeRay .predefined { color:#369; font-weight:bold }
90
+ .CodeRay .predefined-constant { color:#069 }
91
+ .CodeRay .predefined-type { color:#0a5; font-weight:bold }
92
+ .CodeRay .preprocessor { color:#579 }
93
+ .CodeRay .pseudo-class { color:#00C; font-weight:bold }
94
+ .CodeRay .regexp .content { color:#808 }
95
+ .CodeRay .regexp .delimiter { color:#404 }
96
+ .CodeRay .regexp .modifier { color:#C2C }
97
+ .CodeRay .regexp { background-color:hsla(300,100%,50%,0.06); }
98
+ .CodeRay .reserved { color:#080; font-weight:bold }
99
+ .CodeRay .shell .content { color:#2B2 }
100
+ .CodeRay .shell .delimiter { color:#161 }
101
+ .CodeRay .shell { background-color:hsla(120,100%,50%,0.06); }
102
+ .CodeRay .string .char { color: #b0b }
103
+ .CodeRay .string .content { color: #D20 }
104
+ .CodeRay .string .delimiter { color: #710 }
105
+ .CodeRay .string .modifier { color: #E40 }
106
+ .CodeRay .string { background-color:hsla(0,100%,50%,0.05); }
107
+ .CodeRay .symbol .content { color:#A60 }
108
+ .CodeRay .symbol .delimiter { color:#630 }
109
+ .CodeRay .symbol { color:#A60 }
110
+ .CodeRay .tag { color:#070 }
111
+ .CodeRay .type { color:#339; font-weight:bold }
112
+ .CodeRay .value { color: #088; }
113
+ .CodeRay .variable { color:#037 }
114
+
115
+ .CodeRay .insert { background: hsla(120,100%,50%,0.12) }
116
+ .CodeRay .delete { background: hsla(0,100%,50%,0.12) }
117
+ .CodeRay .change { color: #bbf; background: #007; }
118
+ .CodeRay .head { color: #f8f; background: #505 }
119
+ .CodeRay .head .filename { color: white; }
120
+
121
+ .CodeRay .delete .eyecatcher { background-color: hsla(0,100%,50%,0.2); border: 1px solid hsla(0,100%,45%,0.5); margin: -1px; border-bottom: none; border-top-left-radius: 5px; border-top-right-radius: 5px; }
122
+ .CodeRay .insert .eyecatcher { background-color: hsla(120,100%,50%,0.2); border: 1px solid hsla(120,100%,25%,0.5); margin: -1px; border-top: none; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; }
123
+
124
+ .CodeRay .insert .insert { color: #0c0; background:transparent; font-weight:bold }
125
+ .CodeRay .delete .delete { color: #c00; background:transparent; font-weight:bold }
126
+ .CodeRay .change .change { color: #88f }
127
+ .CodeRay .head .head { color: #f4f }
@@ -0,0 +1,8 @@
1
+ /* Colors for GVim classes */
2
+ span.Constant { color: Crimson; }
3
+ span.Identifier { color: Teal; }
4
+ span.PreProc { color: Indigo; }
5
+ span.Special { color: Navy; }
6
+ span.Statement { color: Maroon; }
7
+ span.Type { color: Green; }
8
+ span.Comment { color: Purple; }
@@ -72,16 +72,6 @@ table.layout td.html {
72
72
  background-color: Beige;
73
73
  }
74
74
 
75
- /* Colors for GVim classes */
76
-
77
- span.Constant { color: Crimson; }
78
- span.Identifier { color: Teal; }
79
- span.PreProc { color: Indigo; }
80
- span.Special { color: Navy; }
81
- span.Statement { color: Maroon; }
82
- span.Type { color: Green; }
83
- span.Comment { color: Purple; }
84
-
85
75
  /* Fonts */
86
76
 
87
77
  body {
@@ -1,5 +1,3 @@
1
- require "open3"
2
-
3
1
  module Codnar
4
2
 
5
3
  # Generate diagrams using GraphViz.
@@ -1,47 +1,51 @@
1
- # Extend the Markdown class.
2
- class Markdown
3
-
4
- # Process a Markdown String and return the resulting HTML. In addition to the
5
- # normal Markdown syntax, processing supports the following Codnar-specific
6
- # extensions:
7
- #
8
- # * The notation "[[chunk|template]]" is expanded to embedding the specified
9
- # chunk (name) using the specified template at Weave time.
10
- # * The notation "[[#name]]" defines an empty anchor. The HTML anchor id is
11
- # not the specified name, but rather the identifier generated from it (in
12
- # the same way that chunk names are converted to identifiers).
13
- # * The notation "[...](#name)" defines a link to an anchor, which is either
14
- # the chunk with the specified name, or an empty anchor defined as above.
15
- def self.to_html(markdown)
16
- markdown = Markdown.embed_chunks(markdown)
17
- markdown = Markdown.id_anchors(markdown)
18
- html = RDiscount.new(markdown).to_html
19
- html = Markdown.id_links(html)
20
- return html.clean_markup_html
21
- end
1
+ module Codnar
2
+
3
+ # Convert Markdown to HTML.
4
+ module Markdown
22
5
 
23
- protected
24
-
25
- # Expand "[[chunk|template]]" to HTML embed tags. Use identifiers instead of
26
- # names in the +src+ field for safety, unless the template is a magical file
27
- # template, in which case we must preserve the file path.
28
- def self.embed_chunks(markdown)
29
- return markdown.gsub(/\[\[(.*?)\|(.*?)\]\]/) do
30
- src = $1
31
- template = $2
32
- src = src.to_id unless Codnar::Weaver::FILE_TEMPLATE_PROCESSORS.include?(template)
33
- "<embed src='#{src}' type='x-codnar/#{template}'/>"
6
+ # Process a Markdown String and return the resulting HTML. In addition to the
7
+ # normal Markdown syntax, processing supports the following Codnar-specific
8
+ # extensions:
9
+ #
10
+ # * The notation "[[chunk|template]]" is expanded to embedding the specified
11
+ # chunk (name) using the specified template at Weave time.
12
+ # * The notation "[[#name]]" defines an empty anchor. The HTML anchor id is
13
+ # not the specified name, but rather the identifier generated from it (in
14
+ # the same way that chunk names are converted to identifiers).
15
+ # * The notation "[...](#name)" defines a link to an anchor, which is either
16
+ # the chunk with the specified name, or an empty anchor defined as above.
17
+ def self.to_html(markdown)
18
+ markdown = embed_chunks(markdown)
19
+ markdown = id_anchors(markdown)
20
+ html = RDiscount.new(markdown).to_html
21
+ html = id_links(html)
22
+ return html.clean_markup_html
34
23
  end
35
- end
36
24
 
37
- # Expand "[[#name]]" anchors to HTML anchor tags with the matching identifier.
38
- def self.id_anchors(markdown)
39
- return markdown.gsub(/\[\[#(.*?)\]\]/) { "<a id='#{$1.to_id}'/>" }
40
- end
25
+ protected
26
+
27
+ # Expand "[[chunk|template]]" to HTML embed tags. Use identifiers instead of
28
+ # names in the +src+ field for safety, unless the template is a magical file
29
+ # template, in which case we must preserve the file path.
30
+ def self.embed_chunks(markdown)
31
+ return markdown.gsub(/\[\[(.*?)\|(.*?)\]\]/) do
32
+ src = $1
33
+ template = $2
34
+ src = src.to_id unless Codnar::Weaver::FILE_TEMPLATE_PROCESSORS.include?(template)
35
+ "<embed src='#{src}' type='x-codnar/#{template}'/>"
36
+ end
37
+ end
38
+
39
+ # Expand "[[#name]]" anchors to HTML anchor tags with the matching identifier.
40
+ def self.id_anchors(markdown)
41
+ return markdown.gsub(/\[\[#(.*?)\]\]/) { "<a id='#{$1.to_id}'/>" }
42
+ end
43
+
44
+ # Expand "href='#name'" links to the matching "href='#id'" links.
45
+ def self.id_links(html)
46
+ return html.gsub(/href=(["'])#(.*?)(["'])/) { "href=#{$1}##{$2.to_id}#{$3}" }
47
+ end
41
48
 
42
- # Expand "href='#name'" links to the matching "href='#id'" links.
43
- def self.id_links(html)
44
- return html.gsub(/href=(["'])#(.*?)(["'])/) { "href=#{$1}##{$2.to_id}#{$3}" }
45
49
  end
46
50
 
47
51
  end
data/lib/codnar/rdoc.rb CHANGED
@@ -1,9 +1,13 @@
1
- # Extend the RDoc module.
2
- module RDoc
1
+ module Codnar
2
+
3
+ # Convert RDoc to HTML.
4
+ module RDoc
5
+
6
+ # Process a RDoc String and return the resulting HTML.
7
+ def self.to_html(rdoc)
8
+ return ::RDoc::Markup::ToHtml.new.convert(rdoc).clean_markup_html
9
+ end
3
10
 
4
- # Process a RDoc String and return the resulting HTML.
5
- def self.to_html(rdoc)
6
- return ::RDoc::Markup::ToHtml.new.convert(rdoc).clean_markup_html
7
11
  end
8
12
 
9
13
  end
@@ -39,7 +39,7 @@ module Codnar
39
39
  # "Split" a documentation file containing pure RDoc documentation.
40
40
  SPLIT_RDOC_DOCUMENTATION = SPLIT_HTML_DOCUMENTATION.deep_merge(
41
41
  "formatters" => {
42
- "doc" => "Formatter.markup_lines_to_html(lines, RDoc)",
42
+ "doc" => "Formatter.markup_lines_to_html(lines, Codnar::RDoc, 'rdoc')",
43
43
  "unindented_html" => "Formatter.unindented_lines_to_html(lines)",
44
44
  }
45
45
  )
@@ -47,7 +47,7 @@ module Codnar
47
47
  # "Split" a documentation file containing pure Markdown documentation.
48
48
  SPLIT_MARKDOWN_DOCUMENTATION = SPLIT_HTML_DOCUMENTATION.deep_merge(
49
49
  "formatters" => {
50
- "doc" => "Formatter.markup_lines_to_html(lines, Markdown, 'markdown')",
50
+ "doc" => "Formatter.markup_lines_to_html(lines, Codnar::Markdown, 'markdown')",
51
51
  "unindented_html" => "Formatter.unindented_lines_to_html(lines)",
52
52
  }
53
53
  )
@@ -277,7 +277,7 @@ module Codnar
277
277
  # configuration that classifies some lines as +comment+.
278
278
  FORMAT_RDOC_COMMENTS = {
279
279
  "formatters" => {
280
- "comment" => "Formatter.markup_lines_to_html(lines, 'RDoc')",
280
+ "comment" => "Formatter.markup_lines_to_html(lines, Codnar::RDoc, 'rdoc')",
281
281
  "unindented_html" => "Formatter.unindented_lines_to_html(lines)",
282
282
  },
283
283
  }
@@ -295,31 +295,49 @@ module Codnar
295
295
 
296
296
  # {{{ GVim syntax highlighting formatting configurations
297
297
 
298
- # Format code using GVim's Ruby syntax highlighting, using explicit HTML
298
+ # Format code using GVim's syntax highlighting, using explicit HTML
299
299
  # constructs. Assumes some previous configuration already classified the
300
300
  # code lines.
301
301
  FORMAT_CODE_GVIM_HTML = lambda do |syntax|
302
- return Configuration.gvim_code_format(syntax)
302
+ return Configuration.klass_code_format('GVim', syntax, "[]")
303
303
  end
304
304
 
305
- # Format code using GVim's Ruby syntax highlighting, using CSS classes
306
- # instead of explicit font and color styles. Assumes some previous
307
- # configuration already classified the code lines.
305
+ # Format code using GVim's syntax highlighting, using CSS classes instead
306
+ # of explicit font and color styles. Assumes some previous configuration
307
+ # already classified the code lines.
308
308
  FORMAT_CODE_GVIM_CSS = lambda do |syntax|
309
- return Configuration.gvim_code_format(syntax, "'+:let html_use_css=1'")
309
+ return Configuration.klass_code_format('GVim', syntax, "[ '+:let html_use_css=1' ]")
310
310
  end
311
311
 
312
312
  # Return a configuration for highlighting a specific syntax using GVim.
313
- def self.gvim_code_format(syntax, extra_commands = "")
313
+ def self.klass_code_format(klass, syntax, options)
314
314
  return {
315
315
  "formatters" => {
316
- "#{syntax}_code" => "GVim.lines_to_html(lines, '#{syntax}', [ #{extra_commands} ])",
316
+ "#{syntax}_code" => "#{klass}.lines_to_html(lines, '#{syntax}', #{options})",
317
317
  },
318
318
  }
319
319
  end
320
320
 
321
321
  # }}}
322
322
 
323
+ # {{{ CodeRay syntax highlighting formatting configurations
324
+
325
+ # Format code using CodeRay's syntax highlighting, using explicit HTML
326
+ # constructs. Assumes some previous configuration already classified the
327
+ # code lines.
328
+ FORMAT_CODE_CODERAY_HTML = lambda do |syntax|
329
+ return Configuration.klass_code_format('CodeRay', syntax, "{}")
330
+ end
331
+
332
+ # Format code using CodeRay's syntax highlighting, using CSS classes
333
+ # instead of explicit font and color styles. Assumes some previous
334
+ # configuration already classified the code lines.
335
+ FORMAT_CODE_CODERAY_CSS = lambda do |syntax|
336
+ return Configuration.klass_code_format('CodeRay', syntax, "{ :css => :class }")
337
+ end
338
+
339
+ # }}}
340
+
323
341
  # {{{ Sunlight syntax highlighting formatting configurations
324
342
 
325
343
  # Format code using Sunlight's syntax highlighting. This assumes the HTML