Merge pull request #3655 from alfredxing/sunset-maruku

Merge pull request 3655
This commit is contained in:
Parker Moore 2015-04-14 11:51:25 -07:00
commit 7d3a5f82be
9 changed files with 7 additions and 171 deletions

View File

@ -14,7 +14,6 @@ gem 'rdoc', '~> 3.11'
gem 'redgreen', '~> 1.2' gem 'redgreen', '~> 1.2'
gem 'shoulda', '~> 3.5' gem 'shoulda', '~> 3.5'
gem 'cucumber', '1.3.18' gem 'cucumber', '1.3.18'
gem 'maruku', '~> 0.7.0'
gem 'rdiscount', '~> 2.0' gem 'rdiscount', '~> 2.0'
gem 'launchy', '~> 2.3' gem 'launchy', '~> 2.3'
gem 'simplecov', '~> 0.9' gem 'simplecov', '~> 0.9'

View File

@ -30,41 +30,3 @@ Feature: Markdown
Then the _site directory should exist Then the _site directory should exist
And I should see "Index" in "_site/index.html" And I should see "Index" in "_site/index.html"
And I should see "<h1 id=\"my-title\">My Title</h1>" in "_site/index.html" And I should see "<h1 id=\"my-title\">My Title</h1>" in "_site/index.html"
Scenario: Maruku fenced codeblocks
Given I have a configuration file with "markdown" set to "maruku"
And I have an "index.markdown" file with content:
"""
---
title: My title
---
# My title
```
My awesome code
```
"""
When I run jekyll build
Then the _site directory should exist
And I should see "My awesome code" in "_site/index.html"
And I should see "<pre><code>My awesome code</code></pre>" in "_site/index.html"
Scenario: Maruku fenced codeblocks with syntax highlighting
Given I have a configuration file with "markdown" set to "maruku"
And I have an "index.markdown" file with content:
"""
---
title: My title
---
# My title
```ruby
puts "My awesome string"
```
"""
When I run jekyll build
Then the _site directory should exist
And I should see "My awesome string" in "_site/index.html"
And I should see "<pre class="ruby"><code class="ruby">puts &quot;My awesome string&quot;</code></pre>" in "_site/index.html"

View File

@ -83,13 +83,6 @@ Feature: Site configuration
Then the _site directory should exist Then the _site directory should exist
And I should see "<a href=\"http://google.com\">Google</a>" in "_site/index.html" And I should see "<a href=\"http://google.com\">Google</a>" in "_site/index.html"
Scenario: Use Maruku for markup
Given I have an "index.markdown" page that contains "[Google](http://google.com)"
And I have a configuration file with "markdown" set to "maruku"
When I run jekyll build
Then the _site directory should exist
And I should see "<a href=\"http://google.com\">Google</a>" in "_site/index.html"
Scenario: Highlight code with pygments Scenario: Highlight code with pygments
Given I have an "index.html" page that contains "{% highlight ruby %} puts 'Hello world!' {% endhighlight %}" Given I have an "index.html" page that contains "{% highlight ruby %} puts 'Hello world!' {% endhighlight %}"
When I run jekyll build When I run jekyll build

View File

@ -56,15 +56,6 @@ module Jekyll
'quiet' => false, 'quiet' => false,
'defaults' => [], 'defaults' => [],
'maruku' => {
'use_tex' => false,
'use_divs' => false,
'png_engine' => 'blahtex',
'png_dir' => 'images/latex',
'png_url' => '/images/latex',
'fenced_code_blocks' => true
},
'rdiscount' => { 'rdiscount' => {
'extensions' => [] 'extensions' => []
}, },
@ -257,9 +248,11 @@ module Jekyll
end end
if config.fetch('markdown', 'kramdown').to_s.downcase.eql?("maruku") if config.fetch('markdown', 'kramdown').to_s.downcase.eql?("maruku")
Jekyll::Deprecator.deprecation_message "You're using the 'maruku' " + Jekyll.logger.abort_with "Error:", "You're using the 'maruku' " +
"Markdown processor. Maruku support has been deprecated and will " + "Markdown processor, which has been removed as of 3.0.0. " +
"be removed in 3.0.0. We recommend you switch to Kramdown." "We recommend you switch to Kramdown. To do this, replace " +
"`markdown: maruku` with `markdown: kramdown` in your " +
"`_config.yml` file."
end end
config config

View File

@ -13,7 +13,6 @@ module Jekyll
when 'redcarpet' then RedcarpetParser.new(@config) when 'redcarpet' then RedcarpetParser.new(@config)
when 'kramdown' then KramdownParser.new(@config) when 'kramdown' then KramdownParser.new(@config)
when 'rdiscount' then RDiscountParser.new(@config) when 'rdiscount' then RDiscountParser.new(@config)
when 'maruku' then MarukuParser.new(@config)
else else
# So they can't try some tricky bullshit or go down the ancestor chain, I hope. # So they can't try some tricky bullshit or go down the ancestor chain, I hope.
if allowed_custom_class?(@config['markdown']) if allowed_custom_class?(@config['markdown'])
@ -29,7 +28,6 @@ module Jekyll
def valid_processors def valid_processors
%w[ %w[
maruku
rdiscount rdiscount
kramdown kramdown
redcarpet redcarpet
@ -39,7 +37,6 @@ module Jekyll
def third_party_processors def third_party_processors
self.class.constants - %w[ self.class.constants - %w[
KramdownParser KramdownParser
MarukuParser
RDiscountParser RDiscountParser
RedcarpetParser RedcarpetParser
PRIORITIES PRIORITIES

View File

@ -1,55 +0,0 @@
module Jekyll
module Converters
class Markdown
class MarukuParser
def initialize(config)
require 'maruku'
@config = config
@errors = []
load_divs_library if @config['maruku']['use_divs']
load_blahtext_library if @config['maruku']['use_tex']
# allow fenced code blocks (new in Maruku 0.7.0)
MaRuKu::Globals[:fenced_code_blocks] = !!@config['maruku']['fenced_code_blocks']
rescue LoadError
STDERR.puts 'You are missing a library required for Markdown. Please run:'
STDERR.puts ' $ [sudo] gem install maruku'
raise Errors::FatalException.new("Missing dependency: maruku")
end
def load_divs_library
require 'maruku/ext/div'
STDERR.puts 'Maruku: Using extended syntax for div elements.'
end
def load_blahtext_library
require 'maruku/ext/math'
STDERR.puts "Maruku: Using LaTeX extension. Images in `#{@config['maruku']['png_dir']}`."
# Switch off MathML output
MaRuKu::Globals[:html_math_output_mathml] = false
MaRuKu::Globals[:html_math_engine] = 'none'
# Turn on math to PNG support with blahtex
# Resulting PNGs stored in `images/latex`
MaRuKu::Globals[:html_math_output_png] = true
MaRuKu::Globals[:html_png_engine] = @config['maruku']['png_engine']
MaRuKu::Globals[:html_png_dir] = @config['maruku']['png_dir']
MaRuKu::Globals[:html_png_url] = @config['maruku']['png_url']
end
def print_errors_and_fail
print @errors.join
raise MaRuKu::Exception, "MaRuKu encountered problem(s) while converting your markup."
end
def convert(content)
converted = Maruku.new(content, :error_stream => @errors).to_html.strip
print_errors_and_fail unless @errors.empty?
converted
end
end
end
end
end

View File

@ -514,14 +514,6 @@ quiet: false
defaults: [] defaults: []
# Markdown Processors # Markdown Processors
maruku:
use_tex: false
use_divs: false
png_engine: blahtex
png_dir: images/latex
png_url: /images/latex
fenced_code_blocks: true
rdiscount: rdiscount:
extensions: [] extensions: []

View File

@ -114,21 +114,6 @@ The various markup engines that Jekyll uses may have some issues. This
page will document them to help others who may run into the same page will document them to help others who may run into the same
problems. problems.
### Maruku
If your link has characters that need to be escaped, you need to use
this syntax:
{% highlight text %}
![Alt text](http://yuml.me/diagram/class/[Project]->[Task])
{% endhighlight %}
If you have an empty tag, i.e. `<script src="js.js"></script>`, Maruku
transforms this into `<script src="js.js" />`. This causes problems in
Firefox and possibly other browsers and is [discouraged in
XHTML.](http://www.w3.org/TR/xhtml1/#C_3) An easy fix is to put a space
between the opening and closing tags.
### Liquid ### Liquid
The latest version, version 2.0, seems to break the use of `{{ "{{" }}` in The latest version, version 2.0, seems to break the use of `{{ "{{" }}` in

View File

@ -30,7 +30,7 @@ class TestTags < JekyllUnitTest
title: This is a test title: This is a test
--- ---
This document results in a markdown error with maruku This document has some highlighted code in it.
{% highlight text %} {% highlight text %}
#{code} #{code}
@ -338,7 +338,7 @@ EOS
setup do setup do
@content = <<CONTENT @content = <<CONTENT
--- ---
title: Maruku vs. RDiscount title: Kramdown vs. RDiscount vs. Redcarpet
--- ---
_FIGHT!_ _FIGHT!_
@ -351,17 +351,6 @@ puts "3..2..1.."
CONTENT CONTENT
end end
context "using Maruku" do
setup do
create_post(@content)
end
should "parse correctly" do
assert_match %r{<em>FIGHT!</em>}, @result
assert_match %r{<em>FINISH HIM</em>}, @result
end
end
context "using RDiscount" do context "using RDiscount" do
setup do setup do
create_post(@content, 'markdown' => 'rdiscount') create_post(@content, 'markdown' => 'rdiscount')
@ -604,25 +593,6 @@ CONTENT
end end
end end
context "with fenced code blocks with backticks" do
setup do
content = <<CONTENT
```ruby
puts "Hello world"
```
CONTENT
create_post(content, {
'markdown' => 'maruku',
'maruku' => {'fenced_code_blocks' => true}}
)
end
should "render fenced code blocks" do
assert_match %r{<pre class=\"ruby\"><code class=\"ruby\">puts &quot;Hello world&quot;</code></pre>}, @result.strip
end
end
context "include missing file" do context "include missing file" do
setup do setup do
@content = <<CONTENT @content = <<CONTENT