summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/coderay.rb1
-rw-r--r--lib/coderay/for_redcloth.rb70
2 files changed, 35 insertions, 36 deletions
diff --git a/lib/coderay.rb b/lib/coderay.rb
index df330fb..4d9aae1 100644
--- a/lib/coderay.rb
+++ b/lib/coderay.rb
@@ -141,7 +141,6 @@ module CodeRay
require 'coderay/encoder'
require 'coderay/duo'
require 'coderay/style'
- require 'coderay/for_redcloth'
class << self
diff --git a/lib/coderay/for_redcloth.rb b/lib/coderay/for_redcloth.rb
index 4de597e..dd8d22f 100644
--- a/lib/coderay/for_redcloth.rb
+++ b/lib/coderay/for_redcloth.rb
@@ -1,54 +1,54 @@
-# A little hack to enable CodeRay highlighting in RedCloth.
-
-module CodeRay
+module CodeRay # :nodoc:
# A little hack to enable CodeRay highlighting in RedCloth.
#
# Usage:
# require 'coderay'
- # CodeRay.for_redcloth
+ # require 'coderay/for_redcloth'
# RedCloth.new('@[ruby]puts "Hello, World!"@').to_html
#
# Make sure you have RedCloth 4.0.3 activated, for example by calling
# require 'rubygems'
# before RedCloth is loaded and before calling CodeRay.for_redcloth.
- def self.for_redcloth
- gem 'RedCloth', '>= 4.0.3' rescue nil
- require 'redcloth'
- raise 'CodeRay.for_redcloth needs RedCloth 4.0.3 or later.' unless RedCloth::VERSION.to_s >= '4.0.3'
- RedCloth::TextileDoc.send :include, ForRedCloth::TextileDoc
- RedCloth::Formatters::HTML.module_eval do
- undef_method :code, :bc_open, :bc_close
- def code(opts)
- opts[:block] = true
- if opts[:lang] && !filter_coderay
- require 'coderay'
- @in_bc ||= nil
- format = @in_bc ? :div : :span
- highlighted_code = CodeRay.encode opts[:text], opts[:lang], format, :stream => true
- highlighted_code.sub(/\A<(span|div)/) { |m| m + pba(@in_bc || opts) }
- else
- "<code#{pba(opts)}>#{opts[:text]}</code>"
+ module ForRedCloth
+
+ def self.install
+ gem 'RedCloth', '>= 4.0.3' rescue nil
+ require 'redcloth'
+ raise 'CodeRay.for_redcloth needs RedCloth 4.0.3 or later.' unless RedCloth::VERSION.to_s >= '4.0.3'
+ RedCloth::TextileDoc.send :include, ForRedCloth::TextileDoc
+ RedCloth::Formatters::HTML.module_eval do
+ undef_method :code, :bc_open, :bc_close
+ def code(opts) # :nodoc:
+ opts[:block] = true
+ if opts[:lang] && !filter_coderay
+ require 'coderay'
+ @in_bc ||= nil
+ format = @in_bc ? :div : :span
+ highlighted_code = CodeRay.encode opts[:text], opts[:lang], format, :stream => true
+ highlighted_code.sub(/\A<(span|div)/) { |m| m + pba(@in_bc || opts) }
+ else
+ "<code#{pba(opts)}>#{opts[:text]}</code>"
+ end
+ end
+ def bc_open(opts) # :nodoc:
+ opts[:block] = true
+ @in_bc = opts
+ opts[:lang] ? '' : "<pre#{pba(opts)}>"
+ end
+ def bc_close(opts) # :nodoc:
+ @in_bc = nil
+ opts[:lang] ? '' : "</pre>\n"
end
- end
- def bc_open(opts)
- opts[:block] = true
- @in_bc = opts
- opts[:lang] ? '' : "<pre#{pba(opts)}>"
- end
- def bc_close(opts)
- @in_bc = nil
- opts[:lang] ? '' : "</pre>\n"
end
end
- end
-
- module ForRedCloth # :nodoc:
-
- module TextileDoc # :nodoc:
+
+ module TextileDoc # :nodoc:
attr_accessor :filter_coderay
end
end
end
+
+CodeRay::ForRedCloth.install \ No newline at end of file