rename `@options` in HighlightBlock (clash with Liquid::Block). fixes #4173
This commit is contained in:
parent
c4fe2b0513
commit
a7730914df
|
@ -14,7 +14,7 @@ module Jekyll
|
||||||
super
|
super
|
||||||
if markup.strip =~ SYNTAX
|
if markup.strip =~ SYNTAX
|
||||||
@lang = $1.downcase
|
@lang = $1.downcase
|
||||||
@options = {}
|
@highlight_options = {}
|
||||||
if defined?($2) && $2 != ''
|
if defined?($2) && $2 != ''
|
||||||
# Split along 3 possible forms -- key="<quoted list>", key=value, or key
|
# Split along 3 possible forms -- key="<quoted list>", key=value, or key
|
||||||
$2.scan(/(?:\w="[^"]*"|\w=\w|\w)+/) do |opt|
|
$2.scan(/(?:\w="[^"]*"|\w=\w|\w)+/) do |opt|
|
||||||
|
@ -24,10 +24,10 @@ module Jekyll
|
||||||
value.gsub!(/"/, "")
|
value.gsub!(/"/, "")
|
||||||
value = value.split
|
value = value.split
|
||||||
end
|
end
|
||||||
@options[key.to_sym] = value || true
|
@highlight_options[key.to_sym] = value || true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@options[:linenos] = "inline" if @options.key?(:linenos) and @options[:linenos] == true
|
@highlight_options[:linenos] = "inline" if @highlight_options.key?(:linenos) and @highlight_options[:linenos] == true
|
||||||
else
|
else
|
||||||
raise SyntaxError.new <<-eos
|
raise SyntaxError.new <<-eos
|
||||||
Syntax Error in tag 'highlight' while parsing the following markup:
|
Syntax Error in tag 'highlight' while parsing the following markup:
|
||||||
|
@ -80,7 +80,7 @@ eos
|
||||||
highlighted_code = Pygments.highlight(
|
highlighted_code = Pygments.highlight(
|
||||||
code,
|
code,
|
||||||
:lexer => @lang,
|
:lexer => @lang,
|
||||||
:options => sanitized_opts(@options, is_safe)
|
:options => sanitized_opts(@highlight_options, is_safe)
|
||||||
)
|
)
|
||||||
|
|
||||||
if highlighted_code.nil?
|
if highlighted_code.nil?
|
||||||
|
@ -99,7 +99,7 @@ eos
|
||||||
|
|
||||||
def render_rouge(code)
|
def render_rouge(code)
|
||||||
Jekyll::External.require_with_graceful_fail('rouge')
|
Jekyll::External.require_with_graceful_fail('rouge')
|
||||||
formatter = Rouge::Formatters::HTML.new(line_numbers: @options[:linenos], wrap: false)
|
formatter = Rouge::Formatters::HTML.new(line_numbers: @highlight_options[:linenos], wrap: false)
|
||||||
lexer = Rouge::Lexer.find_fancy(@lang, code) || Rouge::Lexers::PlainText
|
lexer = Rouge::Lexer.find_fancy(@lang, code) || Rouge::Lexers::PlainText
|
||||||
formatter.format(lexer.lex(code))
|
formatter.format(lexer.lex(code))
|
||||||
end
|
end
|
||||||
|
|
|
@ -65,37 +65,37 @@ CONTENT
|
||||||
context "highlight tag in unsafe mode" do
|
context "highlight tag in unsafe mode" do
|
||||||
should "set the no options with just a language name" do
|
should "set the no options with just a language name" do
|
||||||
tag = highlight_block_with_opts('ruby ')
|
tag = highlight_block_with_opts('ruby ')
|
||||||
assert_equal({}, tag.instance_variable_get(:@options))
|
assert_equal({}, tag.instance_variable_get(:@highlight_options))
|
||||||
end
|
end
|
||||||
|
|
||||||
should "set the linenos option as 'inline' if no linenos value" do
|
should "set the linenos option as 'inline' if no linenos value" do
|
||||||
tag = highlight_block_with_opts('ruby linenos ')
|
tag = highlight_block_with_opts('ruby linenos ')
|
||||||
assert_equal({ :linenos => 'inline' }, tag.instance_variable_get(:@options))
|
assert_equal({ :linenos => 'inline' }, tag.instance_variable_get(:@highlight_options))
|
||||||
end
|
end
|
||||||
|
|
||||||
should "set the linenos option to 'table' if the linenos key is given the table value" do
|
should "set the linenos option to 'table' if the linenos key is given the table value" do
|
||||||
tag = highlight_block_with_opts('ruby linenos=table ')
|
tag = highlight_block_with_opts('ruby linenos=table ')
|
||||||
assert_equal({ :linenos => 'table' }, tag.instance_variable_get(:@options))
|
assert_equal({ :linenos => 'table' }, tag.instance_variable_get(:@highlight_options))
|
||||||
end
|
end
|
||||||
|
|
||||||
should "recognize nowrap option with linenos set" do
|
should "recognize nowrap option with linenos set" do
|
||||||
tag = highlight_block_with_opts('ruby linenos=table nowrap ')
|
tag = highlight_block_with_opts('ruby linenos=table nowrap ')
|
||||||
assert_equal({ :linenos => 'table', :nowrap => true }, tag.instance_variable_get(:@options))
|
assert_equal({ :linenos => 'table', :nowrap => true }, tag.instance_variable_get(:@highlight_options))
|
||||||
end
|
end
|
||||||
|
|
||||||
should "recognize the cssclass option" do
|
should "recognize the cssclass option" do
|
||||||
tag = highlight_block_with_opts('ruby linenos=table cssclass=hl ')
|
tag = highlight_block_with_opts('ruby linenos=table cssclass=hl ')
|
||||||
assert_equal({ :cssclass => 'hl', :linenos => 'table' }, tag.instance_variable_get(:@options))
|
assert_equal({ :cssclass => 'hl', :linenos => 'table' }, tag.instance_variable_get(:@highlight_options))
|
||||||
end
|
end
|
||||||
|
|
||||||
should "recognize the hl_linenos option and its value" do
|
should "recognize the hl_linenos option and its value" do
|
||||||
tag = highlight_block_with_opts('ruby linenos=table cssclass=hl hl_linenos=3 ')
|
tag = highlight_block_with_opts('ruby linenos=table cssclass=hl hl_linenos=3 ')
|
||||||
assert_equal({ :cssclass => 'hl', :linenos => 'table', :hl_linenos => '3' }, tag.instance_variable_get(:@options))
|
assert_equal({ :cssclass => 'hl', :linenos => 'table', :hl_linenos => '3' }, tag.instance_variable_get(:@highlight_options))
|
||||||
end
|
end
|
||||||
|
|
||||||
should "recognize multiple values of hl_linenos" do
|
should "recognize multiple values of hl_linenos" do
|
||||||
tag = highlight_block_with_opts('ruby linenos=table cssclass=hl hl_linenos="3 5 6" ')
|
tag = highlight_block_with_opts('ruby linenos=table cssclass=hl hl_linenos="3 5 6" ')
|
||||||
assert_equal({ :cssclass => 'hl', :linenos => 'table', :hl_linenos => ['3', '5', '6'] }, tag.instance_variable_get(:@options))
|
assert_equal({ :cssclass => 'hl', :linenos => 'table', :hl_linenos => ['3', '5', '6'] }, tag.instance_variable_get(:@highlight_options))
|
||||||
end
|
end
|
||||||
|
|
||||||
should "treat language name as case insensitive" do
|
should "treat language name as case insensitive" do
|
||||||
|
|
Loading…
Reference in New Issue