From 036cbda2f620942a84b475a858d5f3a88b71a322 Mon Sep 17 00:00:00 2001 From: Robin Dupret Date: Wed, 25 Dec 2013 18:06:29 +0100 Subject: [PATCH] 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. --- jekyll.gemspec | 2 +- .../converters/markdown/redcarpet_parser.rb | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/jekyll.gemspec b/jekyll.gemspec index e62e5380..fcfef499 100644 --- a/jekyll.gemspec +++ b/jekyll.gemspec @@ -52,7 +52,7 @@ Gem::Specification.new do |s| s.add_development_dependency('activesupport', '~> 3.2.13') s.add_development_dependency('jekyll_test_plugin') s.add_development_dependency('jekyll_test_plugin_malicious') - s.add_development_dependency('rouge', '~> 1.0') + s.add_development_dependency('rouge', '~> 1.3') # = MANIFEST = s.files = %w[ diff --git a/lib/jekyll/converters/markdown/redcarpet_parser.rb b/lib/jekyll/converters/markdown/redcarpet_parser.rb index 082c8889..7a805fe9 100644 --- a/lib/jekyll/converters/markdown/redcarpet_parser.rb +++ b/lib/jekyll/converters/markdown/redcarpet_parser.rb @@ -5,7 +5,7 @@ module Jekyll module CommonMethods def add_code_tags(code, lang) - code = code.sub(//, "
")
+            code = code.sub(/
/, "
")
             code = code.sub(/<\/pre>/,"
") end end @@ -41,14 +41,25 @@ module Jekyll require 'rouge' 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 CommonMethods def block_code(code, lang) + code = "
#{super}
" + output = "
" - output << add_code_tags(super, lang) + output << add_code_tags(code, lang) output << "
" end + + protected + def rouge_formatter(opts = {}) + Rouge::Formatters::HTML.new(opts.merge(wrap: false)) + end end