Class: Banzai::Filter::MarkdownPostEscapeFilter
- Inherits:
-
HTML::Pipeline::Filter
- Object
- HTML::Pipeline::Filter
- Banzai::Filter::MarkdownPostEscapeFilter
- Defined in:
- lib/banzai/filter/markdown_post_escape_filter.rb
Overview
See comments in MarkdownPreEscapeFilter for details on strategy
Constant Summary collapse
- LITERAL_KEYWORD =
MarkdownPreEscapeFilter::LITERAL_KEYWORD
- LITERAL_REGEX =
%r{#{LITERAL_KEYWORD}-(.*?)-#{LITERAL_KEYWORD}}
- NOT_LITERAL_REGEX =
%r{#{LITERAL_KEYWORD}-((%5C|\\).+?)-#{LITERAL_KEYWORD}}
- SPAN_REGEX =
%r{<span data-escaped-char>(.*?)</span>}
- XPATH_A =
Gitlab::Utils::Nokogiri.css_to_xpath('a').freeze
- XPATH_LANG_TAG =
Gitlab::Utils::Nokogiri.css_to_xpath('pre').freeze
- XPATH_ESCAPED_CHAR =
Gitlab::Utils::Nokogiri.css_to_xpath('span[data-escaped-char]').freeze
Instance Method Summary collapse
Instance Method Details
#call ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/banzai/filter/markdown_post_escape_filter.rb', line 16 def call return doc unless result[:escaped_literals] new_html = unescaped_literals(doc.to_html) new_html = add_spans(new_html) @doc = parse_html(new_html) remove_spans_in_certain_attributes remove_unnecessary_escapes doc end |