velvet_rope 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,3 +1,8 @@
1
1
  ## v0.0.1
2
2
 
3
3
  * Initial release
4
+
5
+ ## v0.0.2
6
+
7
+ * Gracefully handle unsupported lexers
8
+ * Don't render emoji in inline code
data/lib/velvet_rope.rb CHANGED
@@ -15,7 +15,11 @@ module Redcarpet
15
15
  # as it is a wrapper for the implementation written in C
16
16
  if @extensions[:highlight_syntax]
17
17
  self.class.send(:define_method, :block_code) do |code, language|
18
- Pygments.highlight(code, :lexer => language)
18
+ if Pygments::Lexer.find_by_alias(language)
19
+ Pygments.highlight(code, :lexer => language)
20
+ else
21
+ Pygments.highlight(code)
22
+ end
19
23
  end
20
24
  end
21
25
 
@@ -23,9 +27,9 @@ module Redcarpet
23
27
  super(extensions)
24
28
  end
25
29
 
26
- def postprocess(document)
30
+ def preprocess(document)
27
31
  if @extensions[:emoji]
28
- document.gsub!(/:([a-z0-9\+\-_]+):/) do |match|
32
+ document.gsub!(/:([a-z0-9\+\-_]+):(?=([^`]*`[^`]*`)*[^`]*$)/) do |match|
29
33
  if Emoji.names.include?($1)
30
34
  emoji_template($1)
31
35
  else
@@ -12,6 +12,13 @@ describe Redcarpet::Render::VelvetRope do
12
12
  expected = '<p>This should be a <img alt="smiley" src="/images/emoji/smiley.png" style="vertical-align:middle" width="20" height="20" /> face.</p>' + "\n"
13
13
  markdown.render(content).should eq(expected)
14
14
  end
15
+
16
+ it 'does not render emoji inside of inline-code back ticks' do
17
+ content = 'This should be a :smiley: face. This should be a normal inline code sample `:fire:`.'
18
+
19
+ expected = '<p>This should be a <img alt="smiley" src="/images/emoji/smiley.png" style="vertical-align:middle" width="20" height="20" /> face. This should be a normal inline code sample <code>:fire:</code>.</p>' + "\n"
20
+ markdown.render(content).should eq(expected)
21
+ end
15
22
  end
16
23
 
17
24
  context 'with highlight_syntax option set to true' do
@@ -48,6 +55,19 @@ end
48
55
  expected = %{<p>This is an example of some Ruby code in a fenced code block:</p>\n<div class=\"highlight\"><pre><span class=\"k\">def</span> <span class=\"nf\">my_method</span>\n <span class=\"s1\">&#39;my string&#39;</span><span class=\"o\">.</span><span class=\"n\">uppercase</span>\n<span class=\"k\">end</span>\n</pre></div>}
49
56
  markdown.render(content).should eq(expected)
50
57
  end
58
+
59
+ it "gracefully handles invalid lexers" do
60
+ content = <<-EOS
61
+ ```jquery
62
+ def my_method
63
+ 'my string'.uppercase
64
+ end
65
+ ```
66
+ EOS
67
+
68
+ expected = %{<div class=\"highlight\"><pre><span class=\"n\">def</span> <span class=\"n\">my_method</span>\n <span class=\"s\">&#39;my string&#39;</span><span class=\"p\">.</span><span class=\"n\">uppercase</span>\n<span class=\"k\">end</span>\n</pre></div>}
69
+ markdown.render(content).should eq(expected)
70
+ end
51
71
  end
52
72
 
53
73
  end
data/velvet_rope.gemspec CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |gem|
6
6
  gem.name = "velvet_rope"
7
- gem.version = "0.0.1"
7
+ gem.version = "0.0.2"
8
8
  gem.authors = ["Sean Gaffney"]
9
9
  gem.email = ["sean@seangaffney.cc"]
10
10
  gem.description = %q{VelvetRope is a renderer to complement and enhance Redcarpet's default HTML renderer. It adds support for emoji and syntax-highlighting.}
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: velvet_rope
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-22 00:00:00.000000000 Z
12
+ date: 2013-01-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec