octopress-pygments 1.2.3 → 1.3.0
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.
- checksums.yaml +6 -14
- data/CHANGELOG.md +3 -0
- data/lib/octopress-pygments/options_parser.rb +20 -4
- data/lib/octopress-pygments/renderer.rb +7 -5
- data/lib/octopress-pygments/version.rb +1 -1
- data/lib/octopress-pygments.rb +8 -0
- data/spec/pygments_spec.rb +6 -6
- metadata +11 -11
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
YzA3NWJmYzliMWFiMjJhODVjNzI0NDYwZTY1YTMzZmJmMDA2NzdkNWFhN2Vl
|
10
|
-
MDk3MjM4OTMyNmRhN2VjNjI5OGQ2MzNmZmY2MDAyM2JlNjczZTc3NjM0N2Zh
|
11
|
-
ZmU2ZmRhYjM5ZmU0MzBkZmIwYzVlNzI1MzUzNjc4ODYxY2Y5M2Q=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
Y2FiMWMwZWYyZmYwMjY2MzMyMThiMmI1NGYyOTEwMjE5ZGE3ZTVmNjA2YjRk
|
14
|
-
NDliMzQ5MGQ0ODc4MTYyZWQzMDAzMGY3MWYzM2FmOTkzMjE0OTNjM2ZmNmMw
|
15
|
-
MzkyNmQxMDRiYzMyNzQ0ZmEwZDFhYTJiZjIyMWZmZjU0Mjg0NTc=
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 80e23f910131a9d50e5ece2741af1dfa8e742439
|
4
|
+
data.tar.gz: 2b86308f5194af2974532336a415c07d729b6ec5
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f27c24996a09b278cc82e146474eff2539992a06f9098a3aaee47c4bed11ef37ca39534b855dc158dc69d9c1c53eb25bb936eb80ab58f94ab85502b6d5b43fd8
|
7
|
+
data.tar.gz: 81e3b650f069ae5026cd2142657c9270aeecd7b060696f598d5781a0b2b4e1ca32543661b137554793c574c06de36bc4b8716134ae9c5e2aad50a46199665576
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
class String
|
2
|
+
end
|
3
|
+
|
1
4
|
module Octopress
|
2
5
|
module Pygments
|
3
6
|
class OptionsParser
|
@@ -17,6 +20,7 @@ module Octopress
|
|
17
20
|
.sub(/\s*start:\s*\d+/i,'')
|
18
21
|
.sub(/\s*end:\s*\d+/i,'')
|
19
22
|
.sub(/\s*range:\s*\d+-\d+/i,'')
|
23
|
+
.sub(/\s*escape:\s*\w+/i,'')
|
20
24
|
end
|
21
25
|
|
22
26
|
def parse_markup(defaults = {})
|
@@ -28,12 +32,13 @@ module Octopress
|
|
28
32
|
marks: marks,
|
29
33
|
link_text: link_text,
|
30
34
|
start: start,
|
31
|
-
end: endline
|
35
|
+
end: endline,
|
36
|
+
escape: escape
|
32
37
|
}
|
33
38
|
options = options.delete_if { |k,v| v.nil? }
|
34
39
|
defaults.merge(options)
|
35
40
|
end
|
36
|
-
|
41
|
+
|
37
42
|
def lang
|
38
43
|
extract(/\s*lang:\s*(\S+)/i)
|
39
44
|
end
|
@@ -47,7 +52,11 @@ module Octopress
|
|
47
52
|
end
|
48
53
|
|
49
54
|
def linenos
|
50
|
-
extract(/\s*linenos:\s*(\w+)/i)
|
55
|
+
boolize(extract(/\s*linenos:\s*(\w+)/i))
|
56
|
+
end
|
57
|
+
|
58
|
+
def escape
|
59
|
+
boolize(extract(/\s*escape:\s*(\w+)/i))
|
51
60
|
end
|
52
61
|
|
53
62
|
# Public: Matches pattern for line marks and returns array of line
|
@@ -78,7 +87,7 @@ module Octopress
|
|
78
87
|
if range
|
79
88
|
range.first
|
80
89
|
else
|
81
|
-
extract(/\s*start:\s*(\d+)/i).to_i
|
90
|
+
extract(/\s*start:\s*(\d+)/i, [1], 1).to_i
|
82
91
|
end
|
83
92
|
end
|
84
93
|
|
@@ -106,6 +115,13 @@ module Octopress
|
|
106
115
|
end
|
107
116
|
end
|
108
117
|
end
|
118
|
+
|
119
|
+
def boolize(str)
|
120
|
+
return nil if str.nil?
|
121
|
+
return true if str == true || str =~ (/(true|t|yes|y|1)$/i)
|
122
|
+
return false if str == false || str =~ (/(false|f|no|n|0)$/i) || str.strip.size > 1
|
123
|
+
return str
|
124
|
+
end
|
109
125
|
end
|
110
126
|
end
|
111
127
|
end
|
@@ -5,7 +5,8 @@ module Octopress
|
|
5
5
|
|
6
6
|
def initialize(code, options = {})
|
7
7
|
@code = code
|
8
|
-
@options = options
|
8
|
+
@options = options.delete_if { |k,v| v.nil? }
|
9
|
+
@options = DEFAULTS.merge(@options)
|
9
10
|
@aliases = @options[:aliases]
|
10
11
|
@aliases = (@aliases ? stringify_keys(@aliases) : {})
|
11
12
|
@lang = determine_lang(@options[:lang])
|
@@ -24,13 +25,14 @@ module Octopress
|
|
24
25
|
rendered_code = tableize_code(rendered_code, @lang, {linenos: @options[:linenos], start: @options[:start], marks: @options[:marks]})
|
25
26
|
title = captionize(@options[:title], @options[:url], @options[:link_text]) if @options[:title]
|
26
27
|
rendered_code = "<figure class='code'>#{title}#{rendered_code}</figure>"
|
28
|
+
rendered_code = "{% raw %}#{rendered_code}{% endraw %}" if @options[:escape]
|
27
29
|
Cache.write_to_cache(rendered_code, @options) unless @options[:no_cache]
|
28
30
|
rendered_code
|
29
31
|
end
|
30
32
|
end
|
31
33
|
|
32
34
|
def determine_lang(lang)
|
33
|
-
if lang == ''
|
35
|
+
if lang == ''
|
34
36
|
lang = 'plain'
|
35
37
|
elsif ::Pygments::Lexer.find lang
|
36
38
|
lang
|
@@ -62,9 +64,9 @@ module Octopress
|
|
62
64
|
end
|
63
65
|
|
64
66
|
def tableize_code (code, lang, options = {})
|
65
|
-
start = options[:start]
|
66
|
-
lines = options[:linenos]
|
67
|
-
marks = options[:marks]
|
67
|
+
start = options[:start]
|
68
|
+
lines = options[:linenos]
|
69
|
+
marks = options[:marks]
|
68
70
|
table = "<div class='highlight'><table><tr>"
|
69
71
|
table += number_lines(start, code.lines.count, marks) if lines
|
70
72
|
table += "<td class='main #{'unnumbered' unless lines} #{lang}'><pre>"
|
data/lib/octopress-pygments.rb
CHANGED
@@ -9,6 +9,14 @@ FileUtils.mkdir_p(PYGMENTS_CACHE_DIR)
|
|
9
9
|
|
10
10
|
module Octopress
|
11
11
|
module Pygments
|
12
|
+
DEFAULTS = {
|
13
|
+
lang: 'plain',
|
14
|
+
linenos: true,
|
15
|
+
marks: [],
|
16
|
+
start: 1,
|
17
|
+
escape: true
|
18
|
+
}
|
19
|
+
|
12
20
|
autoload :Cache, 'octopress-pygments/cache'
|
13
21
|
autoload :OptionsParser, 'octopress-pygments/options_parser'
|
14
22
|
autoload :Renderer, 'octopress-pygments/renderer'
|
data/spec/pygments_spec.rb
CHANGED
@@ -4,7 +4,7 @@ describe Octopress::Pygments do
|
|
4
4
|
let(:wrapper) do
|
5
5
|
Proc.new do |stuff, numbers|
|
6
6
|
[
|
7
|
-
"<figure class='code'>",
|
7
|
+
"{% raw %}<figure class='code'>",
|
8
8
|
"<div class='highlight'>",
|
9
9
|
"<table><tr>",
|
10
10
|
"<td class='line-numbers' aria-hidden='true'>",
|
@@ -13,20 +13,20 @@ describe Octopress::Pygments do
|
|
13
13
|
"<td class='main plain'>",
|
14
14
|
"<pre>#{stuff}</pre>",
|
15
15
|
"</td></tr>",
|
16
|
-
"</table></div></figure>"
|
16
|
+
"</table></div></figure>{% endraw %}"
|
17
17
|
].join
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
21
21
|
let(:expected_output_no_options) do
|
22
22
|
stuff = <<-EOF
|
23
|
-
<figure class='code'><div class='highlight'><table><tr><td class='line-numbers' aria-hidden='true'><pre><div data-line='1' class='line-number'></div><div data-line='2' class='line-number'></div><div data-line='3' class='line-number'></div><div data-line='4' class='line-number'></div><div data-line='5' class='line-number'></div><div data-line='6' class='line-number'></div><div data-line='7' class='line-number'></div><div data-line='8' class='line-number'></div></pre></td><td class='main plain'><pre><div class='line'> require "hi-there-honey"
|
23
|
+
{% raw %}<figure class='code'><div class='highlight'><table><tr><td class='line-numbers' aria-hidden='true'><pre><div data-line='1' class='line-number'></div><div data-line='2' class='line-number'></div><div data-line='3' class='line-number'></div><div data-line='4' class='line-number'></div><div data-line='5' class='line-number'></div><div data-line='6' class='line-number'></div><div data-line='7' class='line-number'></div><div data-line='8' class='line-number'></div></pre></td><td class='main plain'><pre><div class='line'> require "hi-there-honey"
|
24
24
|
</div><div class='line'> </div><div class='line'> def hi-there-honey
|
25
25
|
</div><div class='line'> HiThereHoney.new("your name")
|
26
26
|
</div><div class='line'> end
|
27
27
|
</div><div class='line'> </div><div class='line'> hi-there-honey
|
28
28
|
</div><div class='line'> # => "Hi, your name"
|
29
|
-
</div></pre></td></tr></table></div></figure>
|
29
|
+
</div></pre></td></tr></table></div></figure>{% endraw %}
|
30
30
|
EOF
|
31
31
|
stuff.strip
|
32
32
|
end
|
@@ -89,7 +89,7 @@ EOF
|
|
89
89
|
lang: "abc",
|
90
90
|
url: "http://something.com/hi/fuaiofnioaf.html",
|
91
91
|
title: "Hello",
|
92
|
-
linenos:
|
92
|
+
linenos: true,
|
93
93
|
marks: [5, 8, 9, 10, 15],
|
94
94
|
link_text: "get it here",
|
95
95
|
start: 5,
|
@@ -110,7 +110,7 @@ EOF
|
|
110
110
|
|
111
111
|
context "with a language" do
|
112
112
|
it "returns the right HTML for a given set of code" do
|
113
|
-
expect(described_class.highlight(code, { lang: 'abc', aliases: {'abc'=>'ruby'} })).to eql(expected_output_lang_ruby.chop)
|
113
|
+
expect(described_class.highlight(code, { lang: 'abc', aliases: {'abc'=>'ruby'}, escape: false })).to eql(expected_output_lang_ruby.chop)
|
114
114
|
end
|
115
115
|
end
|
116
116
|
end
|
metadata
CHANGED
@@ -1,27 +1,27 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: octopress-pygments
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.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: 2013-
|
11
|
+
date: 2013-11-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pygments.rb
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0.5'
|
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
26
|
version: '0.5'
|
27
27
|
- !ruby/object:Gem::Dependency
|
@@ -42,28 +42,28 @@ dependencies:
|
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - '>='
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rspec
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - '>='
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
description: Octopress's core plugin for rendering nice code blocks
|
@@ -100,17 +100,17 @@ require_paths:
|
|
100
100
|
- lib
|
101
101
|
required_ruby_version: !ruby/object:Gem::Requirement
|
102
102
|
requirements:
|
103
|
-
- -
|
103
|
+
- - '>='
|
104
104
|
- !ruby/object:Gem::Version
|
105
105
|
version: '0'
|
106
106
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - '>='
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
requirements: []
|
112
112
|
rubyforge_project:
|
113
|
-
rubygems_version: 2.0.
|
113
|
+
rubygems_version: 2.0.3
|
114
114
|
signing_key:
|
115
115
|
specification_version: 4
|
116
116
|
summary: Octopress's core plugin for rendering nice code blocks
|