From cd513da07e08b54612671ed2c59480942e93bc92 Mon Sep 17 00:00:00 2001 From: ashmaroli Date: Tue, 17 Apr 2018 00:41:28 +0530 Subject: [PATCH] Refactor private method `HighlightBlock#parse_options` (#6822) Merge pull request 6822 --- lib/jekyll/tags/highlight.rb | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/lib/jekyll/tags/highlight.rb b/lib/jekyll/tags/highlight.rb index 256342c3fe6..37fbec2c6af 100644 --- a/lib/jekyll/tags/highlight.rb +++ b/lib/jekyll/tags/highlight.rb @@ -65,23 +65,24 @@ def sanitized_opts(opts, is_safe) private + OPTIONS_REGEX = %r!(?:\w="[^"]*"|\w=\w|\w)+! + def parse_options(input) options = {} - unless input.empty? - # Split along 3 possible forms -- key="", key=value, or key - input.scan(%r!(?:\w="[^"]*"|\w=\w|\w)+!) do |opt| - key, value = opt.split("=") - # If a quoted list, convert to array - if value && value.include?("\"") - value.delete!('"') - value = value.split - end - options[key.to_sym] = value || true + return options if input.empty? + + # Split along 3 possible forms -- key="", key=value, or key + input.scan(OPTIONS_REGEX) do |opt| + key, value = opt.split("=") + # If a quoted list, convert to array + if value && value.include?('"') + value.delete!('"') + value = value.split end + options[key.to_sym] = value || true end - if options.key?(:linenos) && options[:linenos] == true - options[:linenos] = "inline" - end + + options[:linenos] = "inline" if options[:linenos] == true options end