# File lib/maruku/input/parse_block.rb, line 564
        def read_definition(src)
                # Read one or more terms
                terms = []
                while  src.cur_line &&  src.cur_line.md_type == :text
                        terms << md_el(:definition_term, parse_lines_as_span([src.shift_line]))
                end
#               dbg_describe_ary(terms, 'DT')

                want_my_paragraph = false

                raise "Chunky Bacon!" if not src.cur_line

                # one optional empty
                if src.cur_line.md_type == :empty
                        want_my_paragraph = true
                        src.shift_line
                end
                
                raise "Chunky Bacon!" if src.cur_line.md_type != :definition
                
                # Read one or more definitions
                definitions = []
                while src.cur_line && src.cur_line.md_type == :definition
                        parent_offset = src.cur_index
                                
                        first = src.shift_line
                        first =~ Definition
                        first = $1
                        
                        # I know, it's ugly!!!

                        lines, w_m_p = 
                                read_indented_content(src,4, [:definition], :definition)
                        want_my_paragraph ||= w_m_p
                
                        lines.unshift first
                        
#                       dbg_describe_ary(lines, 'DD')
                        src2 = LineSource.new(lines, src, parent_offset)
                        children = parse_blocks(src2)
                        definitions << md_el(:definition_data, children)
                end
                
                return md_el(:definition, terms+definitions, {        
                        :terms => terms, 
                        :definitions => definitions, 
                        :want_my_paragraph => want_my_paragraph})
        end