# Propagate a blank line to all block_parser blocl's parents
private fun propagate_last_line_blank(block_parser: MdBlockParser, last_matched_block_parser: MdBlockParser) do
var last_child = block_parser.block.last_child
if is_blank and last_child != null then
last_line_blank[last_child] = true
end
var block = block_parser.block
# Block quotes lines are never blank as they start with `>`.
# We don't count blanks in fenced code for purposes of thight/loose lists.
# We also don't set `last_line_blank` on an empty list item.
var last_line_blank = is_blank and
not (block isa MdBlockQuote or
block isa MdFencedCodeBlock or
(block isa MdListItem and block.first_child == null and
block_parser != last_matched_block_parser))
# Propagate `last_line_blank` up through parents
var node: nullable MdNode = block_parser.block
while node != null do
self.last_line_blank[node] = last_line_blank
node = node.parent
end
end
lib/markdown2/markdown_block_parsing.nit:444,2--467,4