module GitlabKramdown::Parser::FencedBlockquote

Multiline Blockquote

This parser implements multiline blockquotes fenced by `>>>`

@see docs.gitlab.com/ee/user/markdown.html#multiline-blockquote

Constants

FENCED_BLOCKQUOTE_MATCH
FENCED_BLOCKQUOTE_START

Public Class Methods

included(klass) click to toggle source
# File lib/gitlab_kramdown/parser/fenced_blockquote.rb, line 24
def self.included(klass)
  klass.define_parser(:fenced_blockquote, FENCED_BLOCKQUOTE_START)
end

Public Instance Methods

parse_fenced_blockquote() click to toggle source
# File lib/gitlab_kramdown/parser/fenced_blockquote.rb, line 28
def parse_fenced_blockquote
  if @src.check(FENCED_BLOCKQUOTE_MATCH)
    start_line_number = @src.current_line_number
    @src.pos += @src.matched_size

    el = new_block_el(:blockquote, nil, nil, location: start_line_number)

    content = parse_inner_fenced_content(@src[:content])
    el.children = content
    @tree.children << el
    true
  else
    false
  end
end

Private Instance Methods

parse_inner_fenced_content(content) click to toggle source
# File lib/gitlab_kramdown/parser/fenced_blockquote.rb, line 46
def parse_inner_fenced_content(content)
  parsed = Kramdown::Parser::GitlabKramdown.parse(content, @options)
  parsed[0].children
end