diff --git a/History.markdown b/History.markdown
index 1e6423c6..3b633a7c 100644
--- a/History.markdown
+++ b/History.markdown
@@ -1,6 +1,7 @@
## HEAD
### Major Enhancements
+ * Rename the `pygments` option to `highlighter`
* Add gem-based plugin whitelist to safe mode (#1657)
* Replace the commander command line parser with a more robust
solution for our needs called `mercenary` (#1706)
diff --git a/lib/jekyll/configuration.rb b/lib/jekyll/configuration.rb
index a72e51d8..46c3365c 100644
--- a/lib/jekyll/configuration.rb
+++ b/lib/jekyll/configuration.rb
@@ -24,12 +24,12 @@ module Jekyll
'limit_posts' => 0,
'lsi' => false,
'future' => true, # remove and make true just default
- 'pygments' => true,
'relative_permalinks' => true, # backwards-compatibility with < 1.0
# will be set to false once 2.0 hits
'markdown' => 'maruku',
+ 'highlighter' => 'pygments',
'permalink' => 'date',
'baseurl' => '/',
'include' => ['.htaccess'],
@@ -209,6 +209,13 @@ module Jekyll
config.delete('server_port')
end
+ if config.has_key? 'pygments'
+ Jekyll.logger.warn "Deprecation:", "The 'pygments' configuration option" +
+ " has been renamed to 'highlighter'. Please update your" +
+ " config file accordingly. The allowed values are 'rouge"+
+ "'pygments' or null"
+ end
+
%w[include exclude].each do |option|
if config.fetch(option, []).is_a?(String)
Jekyll.logger.warn "Deprecation:", "The '#{option}' configuration option" +
diff --git a/lib/jekyll/converter.rb b/lib/jekyll/converter.rb
index e2dc2796..c30f4944 100644
--- a/lib/jekyll/converter.rb
+++ b/lib/jekyll/converter.rb
@@ -1,27 +1,27 @@
module Jekyll
class Converter < Plugin
- # Public: Get or set the pygments prefix. When an argument is specified,
+ # Public: Get or set the highlighter prefix. When an argument is specified,
# the prefix will be set. If no argument is specified, the current prefix
# will be returned.
#
- # pygments_prefix - The String prefix (default: nil).
+ # highlighter_prefix - The String prefix (default: nil).
#
# Returns the String prefix.
- def self.pygments_prefix(pygments_prefix = nil)
- @pygments_prefix = pygments_prefix if pygments_prefix
- @pygments_prefix
+ def self.highlighter_prefix(highlighter_prefix = nil)
+ @highlighter_prefix = highlighter_prefix if highlighter_prefix
+ @highlighter_prefix
end
- # Public: Get or set the pygments suffix. When an argument is specified,
+ # Public: Get or set the highlighter suffix. When an argument is specified,
# the suffix will be set. If no argument is specified, the current suffix
# will be returned.
#
- # pygments_suffix - The String suffix (default: nil).
+ # highlighter_suffix - The String suffix (default: nil).
#
# Returns the String suffix.
- def self.pygments_suffix(pygments_suffix = nil)
- @pygments_suffix = pygments_suffix if pygments_suffix
- @pygments_suffix
+ def self.highlighter_suffix(highlighter_suffix = nil)
+ @highlighter_suffix = highlighter_suffix if highlighter_suffix
+ @highlighter_suffix
end
# Initialize the converter.
@@ -31,18 +31,18 @@ module Jekyll
@config = config
end
- # Get the pygments prefix.
+ # Get the highlighter prefix.
#
# Returns the String prefix.
- def pygments_prefix
- self.class.pygments_prefix
+ def highlighter_prefix
+ self.class.highlighter_prefix
end
- # Get the pygments suffix.
+ # Get the highlighter suffix.
#
# Returns the String suffix.
- def pygments_suffix
- self.class.pygments_suffix
+ def highlighter_suffix
+ self.class.highlighter_suffix
end
end
end
diff --git a/lib/jekyll/converters/markdown.rb b/lib/jekyll/converters/markdown.rb
index 485cac82..697f4e7e 100644
--- a/lib/jekyll/converters/markdown.rb
+++ b/lib/jekyll/converters/markdown.rb
@@ -3,8 +3,8 @@ module Jekyll
class Markdown < Converter
safe true
- pygments_prefix "\n"
- pygments_suffix "\n"
+ highlighter_prefix "\n"
+ highlighter_suffix "\n"
def setup
return if @setup
diff --git a/lib/jekyll/converters/markdown/redcarpet_parser.rb b/lib/jekyll/converters/markdown/redcarpet_parser.rb
index 9af80571..9e96c35e 100644
--- a/lib/jekyll/converters/markdown/redcarpet_parser.rb
+++ b/lib/jekyll/converters/markdown/redcarpet_parser.rb
@@ -43,7 +43,8 @@ module Jekyll
@redcarpet_extensions = {}
@config['redcarpet']['extensions'].each { |e| @redcarpet_extensions[e.to_sym] = true }
- @renderer ||= if @config['pygments']
+ @renderer ||= case @config['highlighter']
+ when 'pygments'
Class.new(Redcarpet::Render::HTML) do
include WithPygments
end
diff --git a/lib/jekyll/converters/textile.rb b/lib/jekyll/converters/textile.rb
index 54e93749..d05b2169 100644
--- a/lib/jekyll/converters/textile.rb
+++ b/lib/jekyll/converters/textile.rb
@@ -3,8 +3,8 @@ module Jekyll
class Textile < Converter
safe true
- pygments_prefix ''
- pygments_suffix ''
+ highlighter_prefix ''
+ highlighter_suffix ''
def setup
return if @setup
diff --git a/lib/jekyll/convertible.rb b/lib/jekyll/convertible.rb
index 815c36b0..b0b1b090 100644
--- a/lib/jekyll/convertible.rb
+++ b/lib/jekyll/convertible.rb
@@ -144,8 +144,8 @@ module Jekyll
info = { :filters => [Jekyll::Filters], :registers => { :site => self.site, :page => payload['page'] } }
# render and transform content (this becomes the final content of the object)
- payload["pygments_prefix"] = converter.pygments_prefix
- payload["pygments_suffix"] = converter.pygments_suffix
+ payload["highlighter_prefix"] = converter.highlighter_prefix
+ payload["highlighter_suffix"] = converter.highlighter_suffix
self.content = self.render_liquid(self.content,
payload,
diff --git a/lib/jekyll/deprecator.rb b/lib/jekyll/deprecator.rb
index 23af739d..0fdb7a7b 100644
--- a/lib/jekyll/deprecator.rb
+++ b/lib/jekyll/deprecator.rb
@@ -9,8 +9,7 @@ module Jekyll
arg_is_present? args, "--auto", "The switch '--auto' has been replaced with '--watch'."
arg_is_present? args, "--no-auto", "To disable auto-replication, simply leave off \
the '--watch' switch."
- arg_is_present? args, "--pygments", "The 'pygments' setting can only be set in \
- your config files."
+ arg_is_present? args, "--pygments", "The 'pygments' setting has been removed"
arg_is_present? args, "--paginate", "The 'paginate' setting can only be set in your \
config files."
arg_is_present? args, "--url", "The 'url' setting can only be set in your config files."
diff --git a/lib/jekyll/site.rb b/lib/jekyll/site.rb
index 8fee59cf..95bb46f9 100644
--- a/lib/jekyll/site.rb
+++ b/lib/jekyll/site.rb
@@ -1,7 +1,7 @@
module Jekyll
class Site
attr_accessor :config, :layouts, :posts, :pages, :static_files,
- :categories, :exclude, :include, :source, :dest, :lsi, :pygments,
+ :categories, :exclude, :include, :source, :dest, :lsi, :highlighter,
:permalink_style, :tags, :time, :future, :safe, :plugins, :limit_posts,
:show_drafts, :keep_files, :baseurl, :data, :file_read_opts, :gems
@@ -13,7 +13,7 @@ module Jekyll
def initialize(config)
self.config = config.clone
- %w[safe lsi pygments baseurl exclude include future show_drafts limit_posts keep_files gems].each do |opt|
+ %w[safe lsi highlighter baseurl exclude include future show_drafts limit_posts keep_files gems].each do |opt|
self.send("#{opt}=", config[opt])
end
diff --git a/lib/jekyll/tags/highlight.rb b/lib/jekyll/tags/highlight.rb
index 2ea144df..a20e90c0 100644
--- a/lib/jekyll/tags/highlight.rb
+++ b/lib/jekyll/tags/highlight.rb
@@ -41,7 +41,8 @@ eos
end
def render(context)
- if context.registers[:site].pygments
+ case context.registers[:site].highlighter
+ when 'pygments'
render_pygments(context, super)
else
render_codehighlighter(context, super)
@@ -58,9 +59,10 @@ eos
@lang
)
- output = context["pygments_prefix"] + output if context["pygments_prefix"]
- output = output + context["pygments_suffix"] if context["pygments_suffix"]
- output
+ output = context["highlighter_prefix"] + output if context["highlighter_prefix"]
+ output << context["highlighter_suffix"] if context["highlighter_suffix"]
+
+ return output
end
def render_codehighlighter(context, code)
diff --git a/lib/site_template/_config.yml b/lib/site_template/_config.yml
index 85daa771..627c7898 100644
--- a/lib/site_template/_config.yml
+++ b/lib/site_template/_config.yml
@@ -1,3 +1,3 @@
name: Your New Jekyll Site
markdown: redcarpet
-pygments: true
+highlighter: pygments
diff --git a/test/test_redcarpet.rb b/test/test_redcarpet.rb
index c6e8b922..c8354c4b 100644
--- a/test/test_redcarpet.rb
+++ b/test/test_redcarpet.rb
@@ -28,7 +28,7 @@ class TestRedcarpet < Test::Unit::TestCase
context "with pygments enabled" do
setup do
- @markdown = Converters::Markdown.new @config.merge({ 'pygments' => true })
+ @markdown = Converters::Markdown.new @config.merge({ 'highlighter' => 'pygments' })
end
should "render fenced code blocks with syntax highlighting" do
@@ -42,9 +42,9 @@ puts "Hello world"
end
end
- context "with pygments disabled" do
+ context "without any highlighter" do
setup do
- @markdown = Converters::Markdown.new @config.merge({ 'pygments' => false })
+ @markdown = Converters::Markdown.new @config.merge({ 'highlighter' => nil })
end
should "render fenced code blocks without syntax highlighting" do
diff --git a/test/test_tags.rb b/test/test_tags.rb
index b21f4931..4819ed93 100644
--- a/test/test_tags.rb
+++ b/test/test_tags.rb
@@ -6,7 +6,7 @@ class TestTags < Test::Unit::TestCase
def create_post(content, override = {}, converter_class = Jekyll::Converters::Markdown)
stub(Jekyll).configuration do
- Jekyll::Configuration::DEFAULTS.deep_merge({'pygments' => true}).deep_merge(override)
+ Jekyll::Configuration::DEFAULTS.deep_merge({'highlighter' => 'pygments'}).deep_merge(override)
end
site = Site.new(Jekyll.configuration)
@@ -16,8 +16,8 @@ class TestTags < Test::Unit::TestCase
info = { :filters => [Jekyll::Filters], :registers => { :site => site } }
@converter = site.converters.find { |c| c.class == converter_class }
- payload = { "pygments_prefix" => @converter.pygments_prefix,
- "pygments_suffix" => @converter.pygments_suffix }
+ payload = { "highlighter_prefix" => @converter.highlighter_prefix,
+ "highlighter_suffix" => @converter.highlighter_suffix }
@result = Liquid::Template.parse(content).render!(payload, info)
@result = @converter.convert(@result)