Drop support for older versions of Rouge (#6978)

Merge pull request 6978
This commit is contained in:
Ashwin Maroli 2018-05-03 19:33:55 +05:30 committed by jekyllbot
parent acdbf81476
commit f8dfbd2f7b
9 changed files with 10 additions and 73 deletions

View File

@ -16,8 +16,6 @@ matrix:
env: TEST_SUITE=fmt
- rvm: *ruby1
env: TEST_SUITE=default-site
- rvm: *ruby1
env: ROUGE_VERSION=1.11.1 # runs everything with this version
exclude:
- rvm: *jruby
env: TEST_SUITE=cucumber

View File

@ -5,8 +5,6 @@ gemspec :name => "jekyll"
gem "rake", "~> 12.0"
gem "rouge", ENV["ROUGE"] if ENV["ROUGE"]
group :development do
gem "launchy", "~> 2.3"
gem "pry"

View File

@ -40,7 +40,6 @@ Gem::Specification.new do |s|
s.add_runtime_dependency("liquid", "~> 4.0")
s.add_runtime_dependency("mercenary", "~> 0.3.3")
s.add_runtime_dependency("pathutil", "~> 0.9")
rouge_versions = ENV["ROUGE_VERSION"] ? ["~> #{ENV["ROUGE_VERSION"]}"] : [">= 1.7", "< 4"]
s.add_runtime_dependency("rouge", *rouge_versions)
s.add_runtime_dependency("rouge", "~> 3.0")
s.add_runtime_dependency("safe_yaml", "~> 1.0")
end

View File

@ -57,7 +57,8 @@ class Jekyll::Converters::Markdown::RedcarpetParser
protected
def rouge_formatter(_lexer)
Jekyll::Utils::Rouge.html_formatter(:wrap => false)
require "rouge"
::Rouge::Formatters::HTMLLegacy.new(:wrap => false)
end
end

View File

@ -112,7 +112,8 @@ MSG
end
def render_rouge(code)
formatter = Jekyll::Utils::Rouge.html_formatter(
require "rouge"
formatter = ::Rouge::Formatters::HTMLLegacy.new(
:line_numbers => @highlight_options[:linenos],
:wrap => false,
:css_class => "highlight",

View File

@ -7,7 +7,6 @@ module Jekyll
autoload :Exec, "jekyll/utils/exec"
autoload :Internet, "jekyll/utils/internet"
autoload :Platforms, "jekyll/utils/platforms"
autoload :Rouge, "jekyll/utils/rouge"
autoload :ThreadEvent, "jekyll/utils/thread_event"
autoload :WinTZ, "jekyll/utils/win_tz"

View File

@ -1,22 +0,0 @@
# frozen_string_literal: true
Jekyll::External.require_with_graceful_fail("rouge")
module Jekyll
module Utils
module Rouge
def self.html_formatter(*args)
if old_api?
::Rouge::Formatters::HTML.new(*args)
else
::Rouge::Formatters::HTMLLegacy.new(*args)
end
end
def self.old_api?
::Rouge.version.to_s < "2"
end
end
end
end

View File

@ -20,7 +20,7 @@ class TestKramdown < JekyllUnitTest
"bold_every" => 8,
"css" => :class,
"css_class" => "highlight",
"formatter" => Jekyll::Utils::Rouge.html_formatter.class,
"formatter" => Rouge::Formatters::HTMLLegacy,
},
},
}
@ -91,8 +91,7 @@ class TestKramdown < JekyllUnitTest
puts "Hello World"
~~~
MARKDOWN
div_highlight = ""
div_highlight = ">div.highlight" unless Utils::Rouge.old_api?
div_highlight = ">div.highlight"
selector = "div.highlighter-rouge#{div_highlight}>pre.highlight>code"
refute result.css(selector).empty?
end

View File

@ -323,8 +323,7 @@ EOS
)
end
should "render markdown with rouge 2 with line numbers" do
skip "Skipped because using an older version of Rouge" if Utils::Rouge.old_api?
should "render markdown with rouge with line numbers" do
assert_match(
%(<table class="rouge-table"><tbody>) +
%(<tr><td class="gutter gl">) +
@ -334,18 +333,6 @@ EOS
@result
)
end
should "render markdown with rouge 1 with line numbers" do
skip "Skipped because using a newer version of Rouge" unless Utils::Rouge.old_api?
assert_match(
%(<table style="border-spacing: 0"><tbody>) +
%(<tr><td class="gutter gl" style="text-align: right">) +
%(<pre class="lineno">1</pre></td>) +
%(<td class="code"><pre>test<span class="w">\n</span></pre></td></tr>) +
%(</tbody></table>),
@result
)
end
end
context "post content has raw tag" do
@ -364,18 +351,7 @@ CONTENT
create_post(content)
end
should "render markdown with rouge 1" do
skip "Skipped because using a newer version of Rouge" unless Utils::Rouge.old_api?
assert_match(
%(<div class="language-liquid highlighter-rouge"><pre class="highlight"><code>),
@result
)
end
should "render markdown with rouge 2" do
skip "Skipped because using an older version of Rouge" if Utils::Rouge.old_api?
should "render markdown with rouge" do
assert_match(
%(<div class="language-liquid highlighter-rouge">) +
%(<div class="highlight"><pre class="highlight"><code>),
@ -471,24 +447,12 @@ This should not be highlighted, right?
EOS
end
should "should stop highlighting at boundary with rouge 2" do
skip "Skipped because using an older version of Rouge" if Utils::Rouge.old_api?
should "should stop highlighting at boundary with rouge" do
expected = <<-EOS
<p>This is not yet highlighted</p>\n
<figure class="highlight"><pre><code class="language-php" data-lang="php"><table class="rouge-table"><tbody><tr><td class="gutter gl"><pre class="lineno">1
</pre></td><td class="code"><pre><span class="nx">test</span></pre></td></tr></tbody></table></code></pre></figure>\n
<p>This should not be highlighted, right?</p>
EOS
assert_match(expected, @result)
end
should "should stop highlighting at boundary with rouge 1" do
skip "Skipped because using a newer version of Rouge" unless Utils::Rouge.old_api?
expected = <<-EOS
<p>This is not yet highlighted</p>\n
<figure class="highlight"><pre><code class="language-php" data-lang="php"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre class="lineno">1</pre></td><td class="code"><pre>test<span class="w">
</span></pre></td></tr></tbody></table></code></pre></figure>\n
<p>This should not be highlighted, right?</p>
EOS
assert_match(expected, @result)
end