glorify 0.3.2 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +0 -3
- data/README.md +9 -4
- data/glorify.gemspec +2 -3
- data/lib/glorify.rb +0 -4
- data/lib/glorify/helpers.rb +1 -2
- data/lib/glorify/renderer.rb +2 -9
- data/lib/glorify/template.rb +3 -6
- data/lib/glorify/version.rb +1 -1
- data/spec/glorify_spec.rb +5 -9
- metadata +7 -24
- data/lib/glorify/extensions.rb +0 -12
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -4,12 +4,17 @@
|
|
4
4
|
|
5
5
|
Sinatra helper to parse markdown with syntax highlighting like the pros
|
6
6
|
|
7
|
-
Renders markdown via
|
8
|
-
[
|
7
|
+
Renders markdown via [rdoc-rouge](https://github.com/zzak/rdoc-rouge), an
|
8
|
+
[RDoc](https://github.com/rdoc/rdoc) and
|
9
|
+
[Rouge](https://github.com/jayferd/rouge) bridge.
|
9
10
|
|
10
11
|
Able to use fenced code blocks like github, and includes a default pygments
|
11
12
|
stylesheet.
|
12
13
|
|
14
|
+
## Requirements
|
15
|
+
|
16
|
+
Ruby 1.9.2 or greater, also supports JRuby and Rubinius when using 1.9 modes.
|
17
|
+
|
13
18
|
## Installation
|
14
19
|
|
15
20
|
```bash
|
@@ -28,8 +33,8 @@ gem 'glorify'
|
|
28
33
|
|
29
34
|
Sinatra::Glorify comes with a tilt template for rendering markdown.
|
30
35
|
|
31
|
-
This allows you to override the default markdown renderer and use `
|
32
|
-
|
36
|
+
This allows you to override the default markdown renderer and use `rdoc-rouge`
|
37
|
+
to highlight any code blocks within your view.
|
33
38
|
|
34
39
|
In order to do this, you will need to prefer the template class.
|
35
40
|
|
data/glorify.gemspec
CHANGED
@@ -9,14 +9,13 @@ Gem::Specification.new do |s|
|
|
9
9
|
s.email = ["zachary@zacharyscott.net"]
|
10
10
|
s.homepage = "http://zacharyscott.net/glorify/"
|
11
11
|
s.summary = %q{Sinatra helper to parse markdown with syntax highlighting like the pros}
|
12
|
-
s.description = %q{Renders markdown via
|
12
|
+
s.description = %q{Renders markdown via rdoc-rouge, an RDoc and Rouge bridge. Able to use fenced code blocks like github, and includes a default pygments stylesheet.}
|
13
13
|
|
14
14
|
s.files = `git ls-files`.split("\n")
|
15
15
|
s.require_paths = ["lib"]
|
16
16
|
|
17
17
|
s.add_runtime_dependency "sinatra"
|
18
|
-
s.add_runtime_dependency "
|
19
|
-
s.add_runtime_dependency "pygments.rb"
|
18
|
+
s.add_runtime_dependency "rdoc-rouge"
|
20
19
|
s.add_runtime_dependency "nokogiri"
|
21
20
|
|
22
21
|
s.add_development_dependency "minitest"
|
data/lib/glorify.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
require "sinatra/base"
|
2
2
|
require "glorify/css"
|
3
|
-
require "glorify/extensions"
|
4
3
|
require "glorify/version"
|
5
4
|
require "glorify/renderer"
|
6
5
|
require "glorify/template"
|
@@ -17,12 +16,9 @@ module Sinatra
|
|
17
16
|
module Glorify
|
18
17
|
# Sinatra extension setup to configure the application.
|
19
18
|
#
|
20
|
-
# Uses +settings.glorify_extensions+ for the Sinatra::Glorify::Renderer
|
21
|
-
#
|
22
19
|
# Also, registers the Sinatra::Glorify::Helpers and provides the pygments
|
23
20
|
# stylesheet route using Sinatra::Glorify::Helpers.glorify_css.
|
24
21
|
def self.registered(app)
|
25
|
-
app.set :glorify_extensions, Glorify::EXTENSIONS
|
26
22
|
app.helpers Glorify::Helpers
|
27
23
|
|
28
24
|
app.get '/pygments.css' do
|
data/lib/glorify/helpers.rb
CHANGED
@@ -62,8 +62,7 @@ module Sinatra
|
|
62
62
|
# For modular applications you must add <code>register
|
63
63
|
# Sinatra::Helpers</code> to your application.
|
64
64
|
def glorify text
|
65
|
-
|
66
|
-
Glorify::EXTENSIONS).render(text)
|
65
|
+
Glorify::Renderer.render(text.force_encoding('UTF-8'))
|
67
66
|
end
|
68
67
|
end
|
69
68
|
end
|
data/lib/glorify/renderer.rb
CHANGED
@@ -1,14 +1,7 @@
|
|
1
|
-
require "
|
2
|
-
require "pygments.rb"
|
1
|
+
require "rdoc/rouge"
|
3
2
|
|
4
3
|
module Sinatra
|
5
4
|
module Glorify
|
6
|
-
class Renderer <
|
7
|
-
|
8
|
-
def block_code(code, lang) # :nodoc:
|
9
|
-
Pygments.highlight(code, :lexer => lang, :options => {:encoding => "utf-8"})
|
10
|
-
end
|
11
|
-
|
12
|
-
end
|
5
|
+
class Renderer < RDoc::Rouge::Renderer; end # :nodoc:
|
13
6
|
end
|
14
7
|
end
|
data/lib/glorify/template.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'redcarpet' unless defined? Redcarpet
|
2
1
|
require 'tilt/template'
|
3
2
|
|
4
3
|
module Sinatra
|
@@ -6,8 +5,7 @@ module Sinatra
|
|
6
5
|
# Sinatra::Glorify comes with a tilt template for rendering markdown.
|
7
6
|
#
|
8
7
|
# This allows you to override the default markdown renderer and use
|
9
|
-
# +
|
10
|
-
# view.
|
8
|
+
# +rdoc-rouge+ to highlight any code blocks within your view.
|
11
9
|
#
|
12
10
|
# In order to do this, you will need to prefer the template class.
|
13
11
|
#
|
@@ -22,13 +20,12 @@ module Sinatra
|
|
22
20
|
# end
|
23
21
|
class Template < Tilt::Template
|
24
22
|
def prepare # :nodoc:
|
25
|
-
@engine =
|
26
|
-
Glorify::EXTENSIONS)
|
23
|
+
@engine = Glorify::Renderer
|
27
24
|
@output = nil
|
28
25
|
end
|
29
26
|
|
30
27
|
def evaluate(scope, locals, &block) # :nodoc:
|
31
|
-
@output ||= @engine.render(data)
|
28
|
+
@output ||= @engine.render(data.force_encoding('UTF-8'))
|
32
29
|
end
|
33
30
|
end
|
34
31
|
end
|
data/lib/glorify/version.rb
CHANGED
data/spec/glorify_spec.rb
CHANGED
@@ -1,8 +1,4 @@
|
|
1
|
-
|
2
|
-
require_relative 'spec_helper'
|
3
|
-
rescue NameError
|
4
|
-
require File.expand_path('../spec_helper', __FILE__)
|
5
|
-
end
|
1
|
+
require_relative 'spec_helper'
|
6
2
|
|
7
3
|
describe Sinatra::Glorify do
|
8
4
|
|
@@ -11,7 +7,7 @@ describe Sinatra::Glorify do
|
|
11
7
|
Tilt.prefer Sinatra::Glorify::Template
|
12
8
|
get('/') { markdown :header }
|
13
9
|
end
|
14
|
-
expected = "<h1>a sip of glory
|
10
|
+
expected = "<h1 id=\"label-a+sip+of+glory\">a sip of glory<span><a href=\"#label-a+sip+of+glory\">¶</a> <a href=\"#documentation\">↑</a></span></h1>"
|
15
11
|
get('/')
|
16
12
|
assert ok?
|
17
13
|
assert_equal expected, body
|
@@ -22,7 +18,7 @@ describe Sinatra::Glorify do
|
|
22
18
|
Tilt.prefer Sinatra::Glorify::Template
|
23
19
|
get('/') { markdown :blocks }
|
24
20
|
end
|
25
|
-
expected = "<
|
21
|
+
expected = "<pre class=\"highlight text\">"Hello, world!"</pre>"
|
26
22
|
get('/')
|
27
23
|
assert ok?
|
28
24
|
assert_equal expected, body
|
@@ -37,7 +33,7 @@ describe Sinatra::Glorify do
|
|
37
33
|
end
|
38
34
|
get('/')
|
39
35
|
assert ok?
|
40
|
-
refute_empty Nokogiri::HTML(body).search("
|
36
|
+
refute_empty Nokogiri::HTML(body).search("pre.highlight")
|
41
37
|
end
|
42
38
|
|
43
39
|
it "should parse with a helper" do
|
@@ -52,7 +48,7 @@ describe Sinatra::Glorify do
|
|
52
48
|
end
|
53
49
|
get('/')
|
54
50
|
assert ok?
|
55
|
-
refute_empty Nokogiri::HTML(body).search("
|
51
|
+
refute_empty Nokogiri::HTML(body).search("pre.highlight")
|
56
52
|
end
|
57
53
|
|
58
54
|
it "should include a valid css helper for pygments" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: glorify
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2013-03-
|
14
|
+
date: 2013-03-20 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: sinatra
|
@@ -30,23 +30,7 @@ dependencies:
|
|
30
30
|
- !ruby/object:Gem::Version
|
31
31
|
version: '0'
|
32
32
|
- !ruby/object:Gem::Dependency
|
33
|
-
name:
|
34
|
-
requirement: !ruby/object:Gem::Requirement
|
35
|
-
none: false
|
36
|
-
requirements:
|
37
|
-
- - ~>
|
38
|
-
- !ruby/object:Gem::Version
|
39
|
-
version: '2.0'
|
40
|
-
type: :runtime
|
41
|
-
prerelease: false
|
42
|
-
version_requirements: !ruby/object:Gem::Requirement
|
43
|
-
none: false
|
44
|
-
requirements:
|
45
|
-
- - ~>
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '2.0'
|
48
|
-
- !ruby/object:Gem::Dependency
|
49
|
-
name: pygments.rb
|
33
|
+
name: rdoc-rouge
|
50
34
|
requirement: !ruby/object:Gem::Requirement
|
51
35
|
none: false
|
52
36
|
requirements:
|
@@ -157,8 +141,8 @@ dependencies:
|
|
157
141
|
- - '='
|
158
142
|
- !ruby/object:Gem::Version
|
159
143
|
version: 4.0.0
|
160
|
-
description: Renders markdown via
|
161
|
-
|
144
|
+
description: Renders markdown via rdoc-rouge, an RDoc and Rouge bridge. Able to use
|
145
|
+
fenced code blocks like github, and includes a default pygments stylesheet.
|
162
146
|
email:
|
163
147
|
- zachary@zacharyscott.net
|
164
148
|
executables: []
|
@@ -174,7 +158,6 @@ files:
|
|
174
158
|
- glorify.gemspec
|
175
159
|
- lib/glorify.rb
|
176
160
|
- lib/glorify/css.rb
|
177
|
-
- lib/glorify/extensions.rb
|
178
161
|
- lib/glorify/helpers.rb
|
179
162
|
- lib/glorify/renderer.rb
|
180
163
|
- lib/glorify/template.rb
|
@@ -200,7 +183,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
200
183
|
version: '0'
|
201
184
|
segments:
|
202
185
|
- 0
|
203
|
-
hash:
|
186
|
+
hash: 1006836911274585602
|
204
187
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
205
188
|
none: false
|
206
189
|
requirements:
|
@@ -209,7 +192,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
209
192
|
version: '0'
|
210
193
|
segments:
|
211
194
|
- 0
|
212
|
-
hash:
|
195
|
+
hash: 1006836911274585602
|
213
196
|
requirements: []
|
214
197
|
rubyforge_project:
|
215
198
|
rubygems_version: 1.8.23
|
data/lib/glorify/extensions.rb
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
module Sinatra
|
2
|
-
module Glorify
|
3
|
-
# Helper for Sinatra::Glorify::Renderer default options.
|
4
|
-
#
|
5
|
-
# Configure in your application through +settings.glorify_extensions+
|
6
|
-
EXTENSIONS = { :filter_html => true,
|
7
|
-
:autolink => true,
|
8
|
-
:no_intra_emphasis => true,
|
9
|
-
:fenced_code_blocks => true
|
10
|
-
}
|
11
|
-
end
|
12
|
-
end
|