def read_definition(src)
terms = []
while src.cur_line && src.cur_line.md_type == :text
terms << md_el(:definition_term, parse_span(src.shift_line))
end
want_my_paragraph = false
raise "Chunky Bacon!" unless src.cur_line
if src.cur_line.md_type == :empty
want_my_paragraph = true
src.shift_line
end
raise "Chunky Bacon!" unless src.cur_line.md_type == :definition
definitions = []
while src.cur_line && src.cur_line.md_type == :definition
parent_offset = src.cur_index
first = src.shift_line
first =~ Definition
first = $1
lines, w_m_p = read_indented_content(src, 4, :definition, :definition)
want_my_paragraph ||= w_m_p
lines.unshift first
src2 = LineSource.new(lines, src, parent_offset)
children = parse_blocks(src2)
definitions << md_el(:definition_data, children)
end
md_el(:definition, terms + definitions, {
:terms => terms,
:definitions => definitions,
:want_my_paragraph => want_my_paragraph
})
end