octopress-code-highlighter 4.1.0 → 4.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4b873308424a70aaeff4e38929c2d30b3ad997c5
4
- data.tar.gz: 04c339c9d22b19071a6d188da480d0242329b9ac
3
+ metadata.gz: 46baa2ce8aa0f668a09c0bc698c0f82b2700abbd
4
+ data.tar.gz: ffd4f5ef8d71d0f9ba00551b2c4e2712a251aa0c
5
5
  SHA512:
6
- metadata.gz: c9277a808f9fea0e4090c39b7a600698fd5b14ce61e609eb15616d9ef4987887a47afef4cf1533a55a344aaf2a027fd4e1da6d00fc555d7eab6213663b62f091
7
- data.tar.gz: e06b537a0ab19e4a951ba958712c515567cab02934614607ccbe0b09443a0c63f1f8d3f8db7a413a3e0d43410c8851cc7550a5d93e98ce5c4465584008e19782
6
+ metadata.gz: 38044e87197659c0434f711ffef5f679923960c93076e704792b0e8df66fad89cee746b2c03fc4b0017ff4cdea90e5a98e669bc0c07d82bd6cea4a1a50ea5146
7
+ data.tar.gz: e2241329385980c82d7901ed16fcbd1199279e7a5d94b2b50361bc3c6d5c3340cfae6a21e14b5f855a12ac7752d32bca9aabdb1de7370e58214e99be6da820b7
data/CHANGELOG.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # Changelog
2
2
 
3
+ ## 4.2.0 - 2014-06-28
4
+ - New: Add classnames on code figure: `class:"example classnames"`.
5
+
3
6
  ## 4.1.0 - 2014-06-27
4
7
  - Added support for setting PHP's startinline option (now defaults to true).
5
8
 
@@ -19,6 +19,7 @@ module Octopress
19
19
  .sub(/\s*range:\s*\d+-\d+/i,'')
20
20
  .sub(/\s*escape:\s*\w+/i,'')
21
21
  .sub(/\s*startinline:\s*\w+/i,'')
22
+ .sub(/\s*class:\s*(("(.+?)")|('(.+?)')|(\S+))/i,'')
22
23
  end
23
24
 
24
25
  def parse_markup(defaults = {})
@@ -32,7 +33,8 @@ module Octopress
32
33
  start: start,
33
34
  end: endline,
34
35
  escape: escape,
35
- startinline: startinline
36
+ startinline: startinline,
37
+ class: classnames
36
38
  }
37
39
  options = options.delete_if { |k,v| v.nil? }
38
40
  defaults.merge(options)
@@ -46,6 +48,10 @@ module Octopress
46
48
  boolize(extract(/\s*startinline:\s*(\w+)/i))
47
49
  end
48
50
 
51
+ def classnames
52
+ extract(/\s*class:\s*(("(.+?)")|('(.+?)')|(\S+))/i, [3, 5, 6])
53
+ end
54
+
49
55
  def url
50
56
  extract(/\s*url:\s*(("(.+?)")|('(.+?)')|(\S+))/i, [3, 5, 6])
51
57
  end
@@ -45,7 +45,11 @@ module Octopress
45
45
  rendered_code = render
46
46
  rendered_code = escape_characters(rendered_code)
47
47
  rendered_code = tableize_code(rendered_code)
48
- rendered_code = "<figure class='code-highlight-figure'>#{caption}#{rendered_code}</figure>"
48
+ classnames = 'code-highlight-figure'
49
+ if options[:class]
50
+ classnames << ' ' + options[:class]
51
+ end
52
+ rendered_code = "<figure class='#{classnames}'>#{caption}#{rendered_code}</figure>"
49
53
  rendered_code = "{% raw %}#{rendered_code}{% endraw %}" if options[:escape]
50
54
  Cache.write_to_cache(rendered_code, options) unless options[:no_cache]
51
55
  rendered_code
@@ -98,7 +102,7 @@ module Octopress
98
102
 
99
103
  def render_rouge
100
104
  if lexer = Rouge::Lexer.find(lang) || Rouge::Lexer.find(@aliases[lang])
101
- formatter = ::Rouge::Formatters::HTML.new()
105
+ formatter = ::Rouge::Formatters::HTML.new(wrap: false)
102
106
  formatter.format(lexer.lex(@code))
103
107
  else
104
108
  render_plain
@@ -1,6 +1,6 @@
1
1
  module Octopress
2
2
  module CodeHighlighter
3
- VERSION = "4.1.0"
3
+ VERSION = "4.2.0"
4
4
  end
5
5
  end
6
6
 
@@ -13,12 +13,12 @@ Gem::Specification.new do |gem|
13
13
  gem.homepage = "https://github.com/octopress/code-highlighter"
14
14
  gem.license = "MIT"
15
15
 
16
- gem.add_runtime_dependency 'colorator', '~> 0.1.0'
16
+ gem.add_runtime_dependency 'colorator', '~> 0.1'
17
17
 
18
18
  gem.add_development_dependency 'pry-debugger'
19
19
  gem.add_development_dependency 'rake'
20
20
  gem.add_development_dependency 'rspec'
21
- gem.add_development_dependency 'rouge', '~> 1.3.2'
21
+ gem.add_development_dependency 'rouge', '~> 1.3'
22
22
 
23
23
  gem.files = `git ls-files`.split($/).reject {|f| f =~ /^demo\// }
24
24
  gem.require_paths = ["lib"]
@@ -14,12 +14,12 @@ describe Octopress::CodeHighlighter do
14
14
 
15
15
  let(:expected_output_no_options) do
16
16
  stuff = <<-EOF
17
- <figure class='code-highlight-figure'><div class='code-highlight'><pre class='code-highlight-pre'><div data-line='1' class='code-highlight-row numbered'><div class='code-highlight-line'> require "hi-there-honey"
18
- </div></div><div data-line='2' class='code-highlight-row numbered'><div class='code-highlight-line'> </div></div><div data-line='3' class='code-highlight-row numbered'><div class='code-highlight-line'> def hi-there-honey
19
- </div></div><div data-line='4' class='code-highlight-row numbered'><div class='code-highlight-line'> HiThereHoney.new("your name")
20
- </div></div><div data-line='5' class='code-highlight-row numbered'><div class='code-highlight-line'> end
21
- </div></div><div data-line='6' class='code-highlight-row numbered'><div class='code-highlight-line'> </div></div><div data-line='7' class='code-highlight-row numbered'><div class='code-highlight-line'> hi-there-honey
22
- </div></div><div data-line='8' class='code-highlight-row numbered'><div class='code-highlight-line'> # => "Hi, your name"
17
+ <figure class='code-highlight-figure'><div class='code-highlight'><pre class='code-highlight-pre'><div data-line='1' class='code-highlight-row numbered'><div class='code-highlight-line'>require "hi-there-honey"
18
+ </div></div><div data-line='2' class='code-highlight-row numbered'><div class='code-highlight-line'> </div></div><div data-line='3' class='code-highlight-row numbered'><div class='code-highlight-line'>def hi-there-honey
19
+ </div></div><div data-line='4' class='code-highlight-row numbered'><div class='code-highlight-line'> HiThereHoney.new("your name")
20
+ </div></div><div data-line='5' class='code-highlight-row numbered'><div class='code-highlight-line'>end
21
+ </div></div><div data-line='6' class='code-highlight-row numbered'><div class='code-highlight-line'> </div></div><div data-line='7' class='code-highlight-row numbered'><div class='code-highlight-line'>hi-there-honey
22
+ </div></div><div data-line='8' class='code-highlight-row numbered'><div class='code-highlight-line'># => "Hi, your name"
23
23
  </div></div></pre></div></figure>
24
24
  EOF
25
25
  stuff.strip
@@ -27,25 +27,26 @@ EOF
27
27
 
28
28
  let(:expected_output_lang_ruby) do
29
29
  stuff = <<-EOF
30
- {% raw %}<figure class='code-highlight-figure'><div class='code-highlight'><pre class='code-highlight-pre'><div data-line='1' class='code-highlight-row numbered'><div class='code-highlight-line'><span class="nb">require</span> <span class="s2">"hi-there-honey"</span>
31
- </div></div><div data-line='2' class='code-highlight-row numbered'><div class='code-highlight-line'> </div></div><div data-line='3' class='code-highlight-row numbered'><div class='code-highlight-line'> <span class="k">def</span> <span class="nf">hi</span><span class="o">-</span><span class="n">there</span><span class="o">-</span><span class="n">honey</span>
32
- </div></div><div data-line='4' class='code-highlight-row numbered'><div class='code-highlight-line'> <span class="no">HiThereHoney</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="s2">"your name"</span><span class="p">)</span>
33
- </div></div><div data-line='5' class='code-highlight-row numbered'><div class='code-highlight-line'> <span class="k">end</span>
34
- </div></div><div data-line='6' class='code-highlight-row numbered'><div class='code-highlight-line'> </div></div><div data-line='7' class='code-highlight-row numbered'><div class='code-highlight-line'> <span class="n">hi</span><span class="o">-</span><span class="n">there</span><span class="o">-</span><span class="n">honey</span>
35
- </div></div><div data-line='8' class='code-highlight-row numbered'><div class='code-highlight-line'> <span class="c1"># =&gt; "Hi, your name"</span></div></div></pre></div></figure>{% endraw %}
30
+ {% raw %}<figure class='code-highlight-figure awesome'><div class='code-highlight'><pre class='code-highlight-pre'><div data-line='1' class='code-highlight-row numbered'><div class='code-highlight-line'><span class="nb">require</span> <span class="s2">"hi-there-honey"</span>
31
+ </div></div><div data-line='2' class='code-highlight-row numbered'><div class='code-highlight-line'> </div></div><div data-line='3' class='code-highlight-row numbered'><div class='code-highlight-line'><span class="k">def</span> <span class="nf">hi</span><span class="o">-</span><span class="n">there</span><span class="o">-</span><span class="n">honey</span>
32
+ </div></div><div data-line='4' class='code-highlight-row numbered'><div class='code-highlight-line'> <span class="no">HiThereHoney</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="s2">"your name"</span><span class="p">)</span>
33
+ </div></div><div data-line='5' class='code-highlight-row numbered'><div class='code-highlight-line'><span class="k">end</span>
34
+ </div></div><div data-line='6' class='code-highlight-row numbered'><div class='code-highlight-line'> </div></div><div data-line='7' class='code-highlight-row numbered'><div class='code-highlight-line'><span class="n">hi</span><span class="o">-</span><span class="n">there</span><span class="o">-</span><span class="n">honey</span>
35
+ </div></div><div data-line='8' class='code-highlight-row numbered'><div class='code-highlight-line'><span class="c1"># =&gt; "Hi, your name"</span>
36
+ </div></div></pre></div></figure>{% endraw %}
36
37
  EOF
37
38
  end
38
39
 
39
40
  let(:code) do
40
41
  <<-EOF
41
- require "hi-there-honey"
42
+ require "hi-there-honey"
42
43
 
43
- def hi-there-honey
44
- HiThereHoney.new("your name")
45
- end
44
+ def hi-there-honey
45
+ HiThereHoney.new("your name")
46
+ end
46
47
 
47
- hi-there-honey
48
- # => "Hi, your name"
48
+ hi-there-honey
49
+ # => "Hi, your name"
49
50
  EOF
50
51
  end
51
52
 
@@ -103,7 +104,7 @@ EOF
103
104
 
104
105
  context "with a language" do
105
106
  it "returns the right HTML for a given set of code" do
106
- expect(described_class.highlight(code, { lang: 'abc', aliases: {'abc'=>'ruby'}, escape: true })).to eql(expected_output_lang_ruby.chop)
107
+ expect(described_class.highlight(code, { lang: 'abc', aliases: {'abc'=>'ruby'}, escape: true, class: 'awesome' })).to eql(expected_output_lang_ruby.chop)
107
108
  end
108
109
  end
109
110
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: octopress-code-highlighter
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.0
4
+ version: 4.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brandon Mathis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-27 00:00:00.000000000 Z
11
+ date: 2014-06-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colorator
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.1.0
19
+ version: '0.1'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.1.0
26
+ version: '0.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: pry-debugger
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 1.3.2
75
+ version: '1.3'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 1.3.2
82
+ version: '1.3'
83
83
  description: Octopress's core plugin for rendering nice code blocks
84
84
  email:
85
85
  - brandon@imathis.com