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)