class SlackMarkdown::Filters::QuoteFilter
Public Instance Methods
call()
click to toggle source
# File lib/slack_markdown/filters/quote_filter.rb, line 11 def call html = replace_quote_line(doc.to_s) collect_blockquote(html) end
Private Instance Methods
collect_blockquote(html)
click to toggle source
# File lib/slack_markdown/filters/quote_filter.rb, line 24 def collect_blockquote(html) doc = Nokogiri::HTML.fragment(html) doc.search('blockquote + blockquote').each do |node| next unless node.previous.name == 'blockquote' html = "<blockquote>#{node.previous.inner_html}#{node.inner_html}</blockquote>" node.previous.remove node.replace(html) end doc end
replace_quote_line(str)
click to toggle source
# File lib/slack_markdown/filters/quote_filter.rb, line 18 def replace_quote_line(str) str.gsub(/^>\s*(.+)(?:\n|$)/) do "<blockquote>#{$1}\n</blockquote>" end end