redclothcoderay 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +6 -0
- data/Manifest +0 -1
- data/README +12 -2
- data/Rakefile +1 -1
- data/lib/redcloth_with_coderay.rb +7 -13
- data/redclothcoderay.gemspec +3 -3
- data/test/redclothcoderay_test.rb +11 -1
- metadata +3 -3
data/CHANGELOG
CHANGED
data/Manifest
CHANGED
data/README
CHANGED
@@ -11,7 +11,7 @@ A short summary of what you can do:
|
|
11
11
|
|
12
12
|
Installation as usual:
|
13
13
|
|
14
|
-
sudo gem install
|
14
|
+
sudo gem install redclothcoderay
|
15
15
|
|
16
16
|
|
17
17
|
== Using
|
@@ -21,9 +21,19 @@ You have to specify that you want to use refs_syntax_highlighter when calling Re
|
|
21
21
|
require 'rubygems'
|
22
22
|
require 'redcloth'
|
23
23
|
require 'coderay'
|
24
|
-
require '
|
24
|
+
require 'redcloth_with_coderay'
|
25
25
|
|
26
26
|
RedCloth.new('I am *bold* and <source>@hi_tech</source>').to_html(:textile, :refs_syntax_highlighter)
|
27
|
+
|
28
|
+
== In Ruby on Rails
|
29
|
+
|
30
|
+
Ruby on Rails provides you with a textilize helper. You probably want to override it. Something like this is probably sensible:
|
31
|
+
|
32
|
+
module ApplicationHelper
|
33
|
+
def textilize(text)
|
34
|
+
RedCloth.new(text).to_html(:textile, :refs_syntax_highlighter)
|
35
|
+
end
|
36
|
+
end
|
27
37
|
|
28
38
|
== Example
|
29
39
|
|
data/Rakefile
CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
|
|
2
2
|
require 'rake'
|
3
3
|
require 'echoe'
|
4
4
|
|
5
|
-
Echoe.new('redclothcoderay', '0.1.
|
5
|
+
Echoe.new('redclothcoderay', '0.1.2') do |p|
|
6
6
|
p.description = "Integrates CodeRay with RedCloth by adding a <source> tag."
|
7
7
|
p.url = "http://redclothcoderay.rubyforge.org/"
|
8
8
|
p.author = "August Lilleaas"
|
@@ -1,26 +1,20 @@
|
|
1
|
-
class String
|
2
|
-
# Utility method to check if a string contains newlines.
|
3
|
-
def contains_newlines?
|
4
|
-
self =~ /\n/
|
5
|
-
end
|
6
|
-
end
|
7
|
-
|
8
1
|
module RedclothWithCoderay
|
9
2
|
SINGLE_LINE = '<code class="inline_code">%s</code>'
|
10
3
|
MULTI_LINE = '<pre><code class="multiline_code">%s</code></pre>'
|
11
|
-
|
12
|
-
SOURCE_TAG_REGEXP = /([\t\n]?<source(?:\:([a-z]+))?>(.+?)<\/source>[\t\n]?)/m
|
4
|
+
SOURCE_TAG_REGEXP = /(([\t\n])?<source(?:\:([a-z]+))?>(.+?)<\/source>[\t\n]?)/m
|
13
5
|
|
14
6
|
# The RedCloth extension that performs the syntax highlighting.
|
15
7
|
def refs_syntax_highlighter(text)
|
16
8
|
text.gsub!(SOURCE_TAG_REGEXP) do |m|
|
17
9
|
all_of_it = $~[1]
|
18
|
-
|
19
|
-
|
10
|
+
whitespace_before = $~[2]
|
11
|
+
lang = ($~[3] || :ruby).to_sym
|
12
|
+
code = $~[4].strip
|
20
13
|
|
21
|
-
wrap_in = all_of_it
|
14
|
+
wrap_in = all_of_it =~ /\n/ ? MULTI_LINE : SINGLE_LINE
|
22
15
|
highlighted = wrap_in % CodeRay.scan(code, lang).div(:wrap => nil, :css => :class)
|
23
|
-
|
16
|
+
|
17
|
+
"#{whitespace_before}<notextile>#{highlighted}</notextile>"
|
24
18
|
end
|
25
19
|
end
|
26
20
|
end
|
data/redclothcoderay.gemspec
CHANGED
@@ -2,15 +2,15 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{redclothcoderay}
|
5
|
-
s.version = "0.1.
|
5
|
+
s.version = "0.1.2"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["August Lilleaas"]
|
9
|
-
s.date = %q{2008-11-
|
9
|
+
s.date = %q{2008-11-25}
|
10
10
|
s.description = %q{Integrates CodeRay with RedCloth by adding a <source> tag.}
|
11
11
|
s.email = %q{augustlilleaas@gmail.com}
|
12
12
|
s.extra_rdoc_files = ["CHANGELOG", "lib/redcloth_with_coderay.rb", "README"]
|
13
|
-
s.files = ["CHANGELOG", "lib/redcloth_with_coderay.rb", "Manifest", "MIT-LICENSE", "Rakefile", "README", "
|
13
|
+
s.files = ["CHANGELOG", "lib/redcloth_with_coderay.rb", "Manifest", "MIT-LICENSE", "Rakefile", "README", "test/redclothcoderay_test.rb", "redclothcoderay.gemspec"]
|
14
14
|
s.has_rdoc = true
|
15
15
|
s.homepage = %q{http://redclothcoderay.rubyforge.org/}
|
16
16
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Redclothcoderay", "--main", "README"]
|
@@ -45,8 +45,18 @@ class PluginTest < Test::Unit::TestCase
|
|
45
45
|
def test_parsing_other_languages
|
46
46
|
text = %Q{Hello, this is *textilized* with some <source:html><p>HTML code</p></source>!}
|
47
47
|
result = RedCloth.new(text).to_html(:textile, :refs_syntax_highlighter)
|
48
|
-
|
48
|
+
|
49
49
|
assert result.include?(%Q{<strong>textilized</strong>})
|
50
50
|
assert result.include?(%Q{<code class="inline_code"><span class="ta"><p></span>HTML code<span class="ta"></p></span></code>})
|
51
51
|
end
|
52
|
+
|
53
|
+
def test_after_a_header
|
54
|
+
text = %Q{h2. Hello, world.
|
55
|
+
|
56
|
+
<source>
|
57
|
+
hello_world
|
58
|
+
</source>}
|
59
|
+
result = RedCloth.new(text).to_html(:textile, :refs_syntax_highlighter)
|
60
|
+
assert result.include?(%Q{<h2>Hello, world.</h2>})
|
61
|
+
end
|
52
62
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redclothcoderay
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- August Lilleaas
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-11-
|
12
|
+
date: 2008-11-25 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -59,8 +59,8 @@ files:
|
|
59
59
|
- MIT-LICENSE
|
60
60
|
- Rakefile
|
61
61
|
- README
|
62
|
-
- redclothcoderay.gemspec
|
63
62
|
- test/redclothcoderay_test.rb
|
63
|
+
- redclothcoderay.gemspec
|
64
64
|
has_rdoc: true
|
65
65
|
homepage: http://redclothcoderay.rubyforge.org/
|
66
66
|
post_install_message:
|