mirror of
https://github.com/jekyll/jekyll.git
synced 2026-01-31 09:48:30 -05:00
By setting the `highlighter` setting to `rouge` you can now easily highlight your code with it instead of relying on Pygments. However, Jekyll doesn't depend on Rouge explicitly, you will need to install it or add it to your Gemfile. The documentation has been updated accordingly.
78 lines
2.5 KiB
Ruby
78 lines
2.5 KiB
Ruby
require 'helper'
|
|
|
|
class TestRedcarpet < Test::Unit::TestCase
|
|
context "redcarpet" do
|
|
setup do
|
|
@config = {
|
|
'redcarpet' => { 'extensions' => ['smart', 'strikethrough', 'filter_html'] },
|
|
'markdown' => 'redcarpet'
|
|
}
|
|
@markdown = Converters::Markdown.new @config
|
|
end
|
|
|
|
should "pass redcarpet options" do
|
|
assert_equal "<h1>Some Header</h1>", @markdown.convert('# Some Header #').strip
|
|
end
|
|
|
|
should "pass redcarpet SmartyPants options" do
|
|
assert_equal "<p>“smart”</p>", @markdown.convert('"smart"').strip
|
|
end
|
|
|
|
should "pass redcarpet extensions" do
|
|
assert_equal "<p><del>deleted</del></p>", @markdown.convert('~~deleted~~').strip
|
|
end
|
|
|
|
should "pass redcarpet render options" do
|
|
assert_equal "<p><strong>bad code not here</strong>: i am bad</p>", @markdown.convert('**bad code not here**: <script>i am bad</script>').strip
|
|
end
|
|
|
|
context "with pygments enabled" do
|
|
setup do
|
|
@markdown = Converters::Markdown.new @config.merge({ 'highlighter' => 'pygments' })
|
|
end
|
|
|
|
should "render fenced code blocks with syntax highlighting" do
|
|
assert_equal "<div class=\"highlight\"><pre><code class=\"ruby language-ruby\" data-lang=\"ruby\"><span class=\"nb\">puts</span> <span class=\"s2\">"Hello world"</span>\n</code></pre></div>", @markdown.convert(
|
|
<<-EOS
|
|
```ruby
|
|
puts "Hello world"
|
|
```
|
|
EOS
|
|
).strip
|
|
end
|
|
end
|
|
|
|
context "with rouge enabled" do
|
|
setup do
|
|
@markdown = Converters::Markdown.new @config.merge({ 'highlighter' => 'rouge' })
|
|
end
|
|
|
|
should "render fenced code blocks with syntax highlighting" do
|
|
assert_equal "<div class=\"highlight\"><pre><code class=\"ruby language-ruby\" data-lang=\"ruby\"><span class=\"nb\">puts</span> <span class=\"s2\">\"Hello world\"</span>\n</code></pre></div>", @markdown.convert(
|
|
<<-EOS
|
|
```ruby
|
|
puts "Hello world"
|
|
```
|
|
EOS
|
|
).strip
|
|
end
|
|
end
|
|
|
|
context "without any highlighter" do
|
|
setup do
|
|
@markdown = Converters::Markdown.new @config.merge({ 'highlighter' => nil })
|
|
end
|
|
|
|
should "render fenced code blocks without syntax highlighting" do
|
|
assert_equal "<div class=\"highlight\"><pre><code class=\"ruby language-ruby\" data-lang=\"ruby\">puts "Hello world"\n</code></pre></div>", @markdown.convert(
|
|
<<-EOS
|
|
```ruby
|
|
puts "Hello world"
|
|
```
|
|
EOS
|
|
).strip
|
|
end
|
|
end
|
|
end
|
|
end
|