diff options
Diffstat (limited to 'lib/banzai/filter/syntax_highlight_filter.rb')
-rw-r--r-- | lib/banzai/filter/syntax_highlight_filter.rb | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/lib/banzai/filter/syntax_highlight_filter.rb b/lib/banzai/filter/syntax_highlight_filter.rb index 9fcfcf4acc4..07f82c98666 100644 --- a/lib/banzai/filter/syntax_highlight_filter.rb +++ b/lib/banzai/filter/syntax_highlight_filter.rb @@ -14,7 +14,7 @@ module Banzai LANG_PARAMS_DELIMITER = ':' LANG_PARAMS_ATTR = 'data-lang-params' - CSS = 'pre:not([data-math-style]):not([data-mermaid-style]):not([data-kroki-style]) > code' + CSS = 'pre:not([data-math-style]):not([data-mermaid-style]):not([data-kroki-style]) > code:only-child' XPATH = Gitlab::Utils::Nokogiri.css_to_xpath(CSS).freeze def call @@ -70,11 +70,11 @@ module Banzai private def parse_lang_params(node) - node = node.parent if Feature.enabled?(:use_cmark_renderer, default_enabled: :yaml) + node = node.parent # Commonmarker's FULL_INFO_STRING render option works with the space delimiter. # But the current behavior of GitLab's markdown renderer is different - it grabs everything as the single - # line, including language and its options. To keep backward compatability, we have to parse the old format and + # line, including language and its options. To keep backward compatibility, we have to parse the old format and # merge with the new one. # # Behaviors before separating language and its parameters: @@ -91,11 +91,7 @@ module Banzai return unless language language, language_params = language.split(LANG_PARAMS_DELIMITER, 2) - - if Feature.enabled?(:use_cmark_renderer, default_enabled: :yaml) - language_params = [node.attr('data-meta'), language_params].compact.join(' ') - end - + language_params = [node.attr('data-meta'), language_params].compact.join(' ') formatted_language_params = format_language_params(language_params) [language, formatted_language_params] @@ -110,8 +106,8 @@ module Banzai (Rouge::Lexer.find(language) || Rouge::Lexers::PlainText).new end + # Replace the parent `pre` element with the entire highlighted block def replace_parent_pre_element(node, highlighted) - # Replace the parent `pre` element with the entire highlighted block node.parent.replace(highlighted) end |