glorify 0.2.1 → 0.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.
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # glorify
1
+ # Sinatra::Glorify
2
2
 
3
3
  Sinatra helper to parse markdown with syntax highlighting like the pros
4
4
 
@@ -8,7 +8,7 @@ Renders markdown via redcarpet with syntax highlighting thanks to
8
8
  Able to use fenced code blocks like github, and includes a default pygments
9
9
  stylesheet.
10
10
 
11
- ## install
11
+ ## Installation
12
12
 
13
13
  ```bash
14
14
  gem install glorify
@@ -22,20 +22,21 @@ gem 'sinatra'
22
22
  gem 'glorify'
23
23
  ```
24
24
 
25
- ## using `Glorify::Template`
25
+ ## Sinatra::Glorify::Template
26
26
 
27
- glorify comes with a tilt template for rendering markdown.
27
+ Sinatra::Glorify comes with a tilt template for rendering markdown.
28
28
 
29
- this allows you to override the default markdown renderer and use redcarpet2
30
- with pygments.rb to highlight any code blocks within your view.
29
+ This allows you to override the default markdown renderer and use `redcarpet`
30
+ with `pygments.rb` to highlight any code blocks within your view.
31
31
 
32
- in order to do this, you will need to prefer the template class.
32
+ In order to do this, you will need to prefer the template class.
33
33
 
34
34
  ```ruby
35
35
  Tilt.prefer Sinatra::Glorify::Template
36
36
  ```
37
37
 
38
- then any views that render `markdown` will use Glorify::Template instead.
38
+ Now, any views that render via `markdown` will use Sinatra::Glorify::Template
39
+ instead.
39
40
 
40
41
  ```ruby
41
42
  register Sinatra::Glorify
@@ -44,14 +45,21 @@ get '/' do
44
45
  end
45
46
  ```
46
47
 
47
- ## using the helper
48
+ ## Sinatra::Glorify::Helpers
48
49
 
49
- if you want to stick with your current renderer and just render some code
50
- blocks within your view, use the `glorify` helper method.
50
+ If you want to stick with your current renderer and just render some code
51
+ blocks within your view, use the Sinatra::Glorify::Helpers.glorify helper
52
+ method.
51
53
 
52
- ### classical app
54
+ Depending on the type of application you're building with Sinatra, the manner
55
+ in which Sinatra::Glorify is used will change.
53
56
 
54
- simply `require 'glorify'` to use the helper with a classic style sinatra app.
57
+ See the Sinatra documentation on [Modular vs. Classic
58
+ style](http://www.sinatrarb.com/intro#Modular%20vs.%20Classic%20Style)
59
+
60
+ ### With a classical app
61
+
62
+ Simply `require 'glorify'` to use the helper with a classic style sinatra app.
55
63
 
56
64
  ```ruby
57
65
  require 'sinatra'
@@ -63,10 +71,10 @@ get '/' do
63
71
  end
64
72
  ```
65
73
 
66
- ### modular app
74
+ ### With a modular app
67
75
 
68
- you'll need to `register Sinatra::Glorify` in your sub-classed app, along with
69
- `require 'glorify'`, to use with a modular style sinatra app.
76
+ You will need to `register Sinatra::Glorify` in your sub-classed app, along
77
+ with `require 'glorify'`, to use with a modular style sinatra app.
70
78
 
71
79
  ```ruby
72
80
  require 'sinatra/base'
@@ -81,9 +89,9 @@ class SubclassedApp < Sinatra::Base
81
89
  end
82
90
  ```
83
91
 
84
- ### the view
92
+ ### The view
85
93
 
86
- this is just a simple `erb` template, but you get the idea.
94
+ This is just a simple `erb` template, but you get the idea.
87
95
 
88
96
  ```erb
89
97
  <html>
@@ -96,21 +104,18 @@ this is just a simple `erb` template, but you get the idea.
96
104
  </html>
97
105
  ```
98
106
 
99
- the default pygments stylesheet that comes with glorify is available at the
100
- `/pygments.css` route
107
+ The default pygments stylesheet that comes with glorify is available at the
108
+ `/pygments.css` route.
101
109
 
102
- ### on heroku
103
110
 
104
- to make this work on heroku you'll have to use python2.6
111
+ ## Still stuck?
105
112
 
106
- ```bash
107
- heroku config:add GLORIFY_PYTHON=python2.6
108
- ```
109
- thanks to @simon for
110
- [pointing this out](https://github.com/zzak/glorify/pull/5#r812124)
113
+ The Sinatra documentation on
114
+ [extensions](http://www.sinatrarb.com/extensions.html) does a great job of
115
+ explaining how to use and implement extensions using the Sinatra API.
111
116
 
112
117
 
113
- ## license
118
+ ## License
114
119
 
115
120
  ```
116
121
  Permission is hereby granted, free of charge, to any person obtaining a copy
data/Rakefile CHANGED
@@ -1,10 +1,19 @@
1
1
  require "bundler/gem_tasks"
2
2
 
3
3
  require 'rake/testtask'
4
+ require 'rdoc/task'
4
5
 
5
6
  Rake::TestTask.new do |t|
6
7
  t.pattern = "spec/*_spec.rb"
7
8
  end
8
9
 
10
+ RDoc::Task.new do |rdoc|
11
+ rdoc.title = "Sinatra::Glorify"
12
+ rdoc.main = "README.md"
13
+ rdoc.rdoc_files.include("README.md", "lib/**/*.rb")
14
+ rdoc.rdoc_dir = "."
15
+ rdoc.options << "-O"
16
+ end
17
+
9
18
  task(:spec => :test)
10
19
  task(:default => :test)
@@ -7,7 +7,7 @@ Gem::Specification.new do |s|
7
7
  s.version = Sinatra::Glorify::VERSION
8
8
  s.authors = ["Zachary Scott", "Jonathan Stott", "Simon Gate"]
9
9
  s.email = ["zachary@zacharyscott.net"]
10
- s.homepage = "http://github.com/zzak/glorify"
10
+ s.homepage = "http://zacharyscott.net/glorify/"
11
11
  s.summary = %q{Sinatra helper to parse markdown with syntax highlighting like the pros}
12
12
  s.description = %q{Renders markdown via redcarpet with syntax highlighting thanks to pygments.rb. Able to use fenced code blocks like github, and includes a default pygments stylesheet.}
13
13
 
@@ -16,11 +16,12 @@ Gem::Specification.new do |s|
16
16
 
17
17
  s.add_runtime_dependency "sinatra"
18
18
  s.add_runtime_dependency "redcarpet", "~> 2.0"
19
- s.add_runtime_dependency "pygments.rb", "~> 0.2.0"
19
+ s.add_runtime_dependency "pygments.rb"
20
20
  s.add_runtime_dependency "nokogiri"
21
21
 
22
22
  s.add_development_dependency "minitest"
23
23
  s.add_development_dependency "rack-test"
24
24
  s.add_development_dependency "rake"
25
25
  s.add_development_dependency "w3c_validators"
26
+ s.add_development_dependency "rdoc", "4.0.0.preview2"
26
27
  end
@@ -4,16 +4,23 @@ require "glorify/extensions"
4
4
  require "glorify/version"
5
5
  require "glorify/renderer"
6
6
  require "glorify/template"
7
+ require "glorify/helpers"
7
8
 
9
+ # Sinatra is a microframework for Ruby
10
+ #
11
+ # See sinatra on github for more:
12
+ # http://github.com/sinatra/sinatra
8
13
  module Sinatra
14
+ # Sinatra helper to parse markdown with syntax highlighting like the pros
15
+ #
16
+ # {See the README for more info}[http://github.com/zzak/glorify#readme]
9
17
  module Glorify
10
- module Helpers
11
- def glorify text
12
- Redcarpet::Markdown.new(Glorify::Renderer.new,
13
- Glorify::EXTENSIONS).render(text)
14
- end
15
- end
16
-
18
+ # Sinatra extension setup to configure the application.
19
+ #
20
+ # Uses +settings.glorify_extensions+ for the Sinatra::Glorify::Renderer
21
+ #
22
+ # Also, registers the Sinatra::Glorify::Helpers and provides the pygments
23
+ # stylesheet route using Sinatra::Glorify::Helpers.glorify_css.
17
24
  def self.registered(app)
18
25
  app.set :glorify_extensions, Glorify::EXTENSIONS
19
26
  app.helpers Glorify::Helpers
@@ -1,6 +1,15 @@
1
1
  module Sinatra
2
2
  module Glorify
3
3
  module Helpers
4
+ # A helper route for your application to provide a pygments friendly
5
+ # stylesheet.
6
+ #
7
+ # Given, your Sinatra application is mounted under +/+
8
+ #
9
+ # <link rel="stylesheet" type="text/css" href="/pygments.css" />
10
+ #
11
+ # Based off {Trevor Turk's
12
+ # pygments/default.css}[https://github.com/trevorturk/pygments/blob/master/default.css]
4
13
  def glorify_css
5
14
  <<-css
6
15
  .hll { background-color: #ffffcc }
@@ -1,5 +1,8 @@
1
1
  module Sinatra
2
2
  module Glorify
3
+ # Helper for Sinatra::Glorify::Renderer default options.
4
+ #
5
+ # Configure in your application through +settings.glorify_extensions+
3
6
  EXTENSIONS = { :filter_html => true,
4
7
  :autolink => true,
5
8
  :no_intra_emphasis => true,
@@ -0,0 +1,70 @@
1
+ module Sinatra
2
+ module Glorify
3
+ # If you want to stick with your current renderer and just render some code
4
+ # blocks within your view, use the Sinatra::Glorify::Helpers.glorify helper
5
+ # method.
6
+ #
7
+ # Depending on the type of application you're building with Sinatra, the manner
8
+ # in which Sinatra::Glorify is used will change.
9
+ #
10
+ # See the Sinatra documentation on {Modular vs. Classic
11
+ # style}[http://www.sinatrarb.com/intro#Modular%20vs.%20Classic%20Style]
12
+ #
13
+ # === With a classical app
14
+ #
15
+ # Simply <code>require 'glorify'</code> to use the helper with a classic
16
+ # style sinatra app.
17
+ #
18
+ # require 'sinatra'
19
+ # require 'glorify'
20
+ # require 'erb'
21
+ # get '/' do
22
+ # @example = File.open("#{File.dirname(__FILE__)}/example.md", "rb").read
23
+ # erb :index
24
+ # end
25
+ #
26
+ # === With a modular app
27
+ #
28
+ # You will need to <code>register Sinatra::Glorify</code> in your
29
+ # sub-classed app, along with <code>require 'glorify'</code>, to use with a
30
+ # modular style sinatra app.
31
+ #
32
+ # require 'sinatra/base'
33
+ # require 'glorify'
34
+ # require 'erb'
35
+ # class SubclassedApp < Sinatra::Base
36
+ # register Sinatra::Glorify
37
+ # get '/' do
38
+ # @example = File.open("#{File.dirname(__FILE__)}/example.md", "rb").read
39
+ # erb :index
40
+ # end
41
+ # end
42
+ #
43
+ # === The view
44
+ #
45
+ # This is just a simple +erb+ template, but you get the idea.
46
+ #
47
+ # <html>
48
+ # <head>
49
+ # <link rel="stylesheet" type="text/css" href="/pygments.css" />
50
+ # </head>
51
+ # <body>
52
+ # <%= glorify @example %>
53
+ # </body>
54
+ # </html>
55
+ #
56
+ # The default pygments stylesheet that comes with glorify is available at the
57
+ # +/pygments.css+ route.
58
+ #
59
+ module Helpers
60
+ # Convenience method for custom markdown and templates.
61
+ #
62
+ # For modular applications you must add <code>register
63
+ # Sinatra::Helpers</code> to your application.
64
+ def glorify text
65
+ Redcarpet::Markdown.new(Glorify::Renderer.new,
66
+ Glorify::EXTENSIONS).render(text)
67
+ end
68
+ end
69
+ end
70
+ end
@@ -3,20 +3,10 @@ require "pygments.rb"
3
3
 
4
4
  module Sinatra
5
5
  module Glorify
6
- class Renderer < Redcarpet::Render::HTML
6
+ class Renderer < Redcarpet::Render::HTML # :nodoc:
7
7
 
8
- def initialize(options={})
9
- python = ENV['GLORIFY_PYTHON'] || 'python'
10
- RubyPython.configure :python_exe => python
11
- super
12
- end
13
-
14
- def block_code(code, lang)
15
- begin
16
- Pygments.highlight(code, :lexer => lang, :options => {:encoding => "utf-8"})
17
- rescue RubyPython::PythonError
18
- Pygments.highlight(code, :options => {:encoding => "utf-8"})
19
- end
8
+ def block_code(code, lang) # :nodoc:
9
+ Pygments.highlight(code, :lexer => lang, :options => {:encoding => "utf-8"})
20
10
  end
21
11
 
22
12
  end
@@ -3,14 +3,31 @@ require 'tilt/template'
3
3
 
4
4
  module Sinatra
5
5
  module Glorify
6
+ # Sinatra::Glorify comes with a tilt template for rendering markdown.
7
+ #
8
+ # This allows you to override the default markdown renderer and use
9
+ # +redcarpet+ with +pygments.rb+ to highlight any code blocks within your
10
+ # view.
11
+ #
12
+ # In order to do this, you will need to prefer the template class.
13
+ #
14
+ # Tilt.prefer Sinatra::Glorify::Template
15
+ #
16
+ # Now, any views that render via +markdown+ will use
17
+ # Sinatra::Glorify::Template instead.
18
+ #
19
+ # register Sinatra::Glorify
20
+ # get '/' do
21
+ # markdown :a_view_with_code_blocks
22
+ # end
6
23
  class Template < Tilt::Template
7
- def prepare
24
+ def prepare # :nodoc:
8
25
  @engine = Redcarpet::Markdown.new(Glorify::Renderer.new,
9
26
  Glorify::EXTENSIONS)
10
27
  @output = nil
11
28
  end
12
29
 
13
- def evaluate(scope, locals, &block)
30
+ def evaluate(scope, locals, &block) # :nodoc:
14
31
  @output ||= @engine.render(data)
15
32
  end
16
33
  end
@@ -1,5 +1,6 @@
1
1
  module Sinatra
2
2
  module Glorify
3
- VERSION = "0.2.1"
3
+ # Current version of Sinatra::Glorify
4
+ VERSION = "0.3.0"
4
5
  end
5
6
  end
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.2.1
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -50,17 +50,17 @@ dependencies:
50
50
  requirement: !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
- - - ~>
53
+ - - ! '>='
54
54
  - !ruby/object:Gem::Version
55
- version: 0.2.0
55
+ version: '0'
56
56
  type: :runtime
57
57
  prerelease: false
58
58
  version_requirements: !ruby/object:Gem::Requirement
59
59
  none: false
60
60
  requirements:
61
- - - ~>
61
+ - - ! '>='
62
62
  - !ruby/object:Gem::Version
63
- version: 0.2.0
63
+ version: '0'
64
64
  - !ruby/object:Gem::Dependency
65
65
  name: nokogiri
66
66
  requirement: !ruby/object:Gem::Requirement
@@ -141,6 +141,22 @@ dependencies:
141
141
  - - ! '>='
142
142
  - !ruby/object:Gem::Version
143
143
  version: '0'
144
+ - !ruby/object:Gem::Dependency
145
+ name: rdoc
146
+ requirement: !ruby/object:Gem::Requirement
147
+ none: false
148
+ requirements:
149
+ - - '='
150
+ - !ruby/object:Gem::Version
151
+ version: 4.0.0.preview2
152
+ type: :development
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ none: false
156
+ requirements:
157
+ - - '='
158
+ - !ruby/object:Gem::Version
159
+ version: 4.0.0.preview2
144
160
  description: Renders markdown via redcarpet with syntax highlighting thanks to pygments.rb.
145
161
  Able to use fenced code blocks like github, and includes a default pygments stylesheet.
146
162
  email:
@@ -158,6 +174,7 @@ files:
158
174
  - lib/glorify.rb
159
175
  - lib/glorify/css.rb
160
176
  - lib/glorify/extensions.rb
177
+ - lib/glorify/helpers.rb
161
178
  - lib/glorify/renderer.rb
162
179
  - lib/glorify/template.rb
163
180
  - lib/glorify/version.rb
@@ -168,7 +185,7 @@ files:
168
185
  - spec/glorify/with_helper.erb
169
186
  - spec/glorify_spec.rb
170
187
  - spec/spec_helper.rb
171
- homepage: http://github.com/zzak/glorify
188
+ homepage: http://zacharyscott.net/glorify/
172
189
  licenses: []
173
190
  post_install_message:
174
191
  rdoc_options: []
@@ -180,12 +197,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
180
197
  - - ! '>='
181
198
  - !ruby/object:Gem::Version
182
199
  version: '0'
200
+ segments:
201
+ - 0
202
+ hash: -3421297559445645487
183
203
  required_rubygems_version: !ruby/object:Gem::Requirement
184
204
  none: false
185
205
  requirements:
186
206
  - - ! '>='
187
207
  - !ruby/object:Gem::Version
188
208
  version: '0'
209
+ segments:
210
+ - 0
211
+ hash: -3421297559445645487
189
212
  requirements: []
190
213
  rubyforge_project:
191
214
  rubygems_version: 1.8.24