Require at least 1.3.0 for Rouge

Rouge 1.3.0 introduced a `rouge_formatter` helper which is handy to
overwrite the formatter default when using the Redcarpet plugin so let's
require this version at the very least.

An abort statement will be thrown when the installed version is not
correct.
This commit is contained in:
Robin Dupret 2013-12-25 18:06:29 +01:00
parent 5647a902de
commit 036cbda2f6
2 changed files with 14 additions and 3 deletions

View File

@ -52,7 +52,7 @@ Gem::Specification.new do |s|
s.add_development_dependency('activesupport', '~> 3.2.13') s.add_development_dependency('activesupport', '~> 3.2.13')
s.add_development_dependency('jekyll_test_plugin') s.add_development_dependency('jekyll_test_plugin')
s.add_development_dependency('jekyll_test_plugin_malicious') s.add_development_dependency('jekyll_test_plugin_malicious')
s.add_development_dependency('rouge', '~> 1.0') s.add_development_dependency('rouge', '~> 1.3')
# = MANIFEST = # = MANIFEST =
s.files = %w[ s.files = %w[

View File

@ -5,7 +5,7 @@ module Jekyll
module CommonMethods module CommonMethods
def add_code_tags(code, lang) def add_code_tags(code, lang)
code = code.sub(/<pre(.*?)>/, "<pre><code class=\"#{lang} language-#{lang}\" data-lang=\"#{lang}\">") code = code.sub(/<pre>/, "<pre><code class=\"#{lang} language-#{lang}\" data-lang=\"#{lang}\">")
code = code.sub(/<\/pre>/,"</code></pre>") code = code.sub(/<\/pre>/,"</code></pre>")
end end
end end
@ -41,14 +41,25 @@ module Jekyll
require 'rouge' require 'rouge'
require 'rouge/plugins/redcarpet' require 'rouge/plugins/redcarpet'
if Rouge.version < '1.3.0'
abort "Please install Rouge 1.3.0 or greater and try running Jekyll again."
end
include Rouge::Plugins::Redcarpet include Rouge::Plugins::Redcarpet
include CommonMethods include CommonMethods
def block_code(code, lang) def block_code(code, lang)
code = "<pre>#{super}</pre>"
output = "<div class=\"highlight\">" output = "<div class=\"highlight\">"
output << add_code_tags(super, lang) output << add_code_tags(code, lang)
output << "</div>" output << "</div>"
end end
protected
def rouge_formatter(opts = {})
Rouge::Formatters::HTML.new(opts.merge(wrap: false))
end
end end