# File lib/maruku/input/type_detection.rb, line 36
        def line_md_type(l)
                # The order of evaluation is important (:text is a catch-all)
                return :text   if l =~ /^[a-zA-Z]/
                return :code             if number_of_leading_spaces(l)>=4
                return :empty    if l =~ /^\s*$/
                return :footnote_text    if l =~ FootnoteText
                return :ref_definition   if l =~ LinkRegex or l=~ IncompleteLink
                return :abbreviation     if l =~ Abbreviation
                return :definition       if l =~ Definition
                # I had a bug with emails and urls at the beginning of the 
                # line that were mistaken for raw_html
                return :text if l=~ /^[ ]{0,3}#{EMailAddress}/
                return :text if l=~ /^[ ]{0,3}<http:/
                # raw html is like PHP Markdown Extra: at most three spaces before
                return :xml_instr if l =~ %r{^\s*<\?}
                return :raw_html if l =~ %r{^[ ]?[ ]?[ ]?</?\s*\w+}
                return :raw_html if l =~ %r{^[ ]?[ ]?[ ]?<\!\-\-}
                # Something is wrong with how we parse lists! :-(
                #return :ulist    if l =~ /^[ ]{0,3}([\*\-\+])\s+.*\w+/
                #return :olist    if l =~ /^[ ]{0,3}\d+\..*\w+/
                return :ulist    if l =~ /^[ ]{0,1}([\*\-\+])\s+.*\w+/
                return :olist    if l =~ /^[ ]{0,1}\d+\..*\w+/
                return :header1  if l =~ /^(=)+/ 
                return :header2  if l =~ /^([-\s])+$/ 
                return :header3  if l =~ /^(#)+\s*\S+/ 
                # at least three asterisks on a line, and only whitespace
                return :hrule    if l =~ /^(\s*\*\s*){3,1000}$/ 
                return :hrule    if l =~ /^(\s*-\s*){3,1000}$/ # or hyphens
                return :hrule    if l =~ /^(\s*_\s*){3,1000}$/ # or underscores       
                return :quote    if l =~ /^>/
                return :metadata if l =~ /^@/
#               if @@new_meta_data?
                        return :ald   if l =~ AttributeDefinitionList
                        return :ial   if l =~ InlineAttributeList
#               end
#               return :equation_end if l =~ EquationEnd
                return :text # else, it's just text
        end