diff options
Diffstat (limited to 'lib/rdoc/markup/parser.rb')
-rw-r--r-- | lib/rdoc/markup/parser.rb | 35 |
1 files changed, 11 insertions, 24 deletions
diff --git a/lib/rdoc/markup/parser.rb b/lib/rdoc/markup/parser.rb index c18ce821fb..68616d7787 100644 --- a/lib/rdoc/markup/parser.rb +++ b/lib/rdoc/markup/parser.rb @@ -86,18 +86,11 @@ class RDoc::Markup::Parser # Builds a Heading of +level+ def build_heading level - type, text, = get - - text = case type - when :TEXT then - skip :NEWLINE - text - else - unget - '' - end - - RDoc::Markup::Heading.new level, text + _, text, = get # TEXT + heading = RDoc::Markup::Heading.new level, text + skip :NEWLINE + + heading end ## @@ -412,19 +405,13 @@ class RDoc::Markup::Parser @line += 1 token # === text => :HEADER then :TEXT - when s.scan(/(=+)(\s*)/) then + when s.scan(/(=+)\s*/) then level = s[1].length - header = [:HEADER, level, *token_pos(pos)] - - if s[2] =~ /^\r?\n/ then - s.pos -= s[2].length - header - else - pos = s.pos - s.scan(/.*/) - @tokens << header - [:TEXT, s.matched.sub(/\r$/, ''), *token_pos(pos)] - end + level = 6 if level > 6 + @tokens << [:HEADER, level, *token_pos(pos)] + pos = s.pos + s.scan(/.*/) + [:TEXT, s.matched.sub(/\r$/, ''), *token_pos(pos)] # --- (at least 3) and nothing else on the line => :RULE when s.scan(/(-{3,}) *$/) then [:RULE, s[1].length - 2, *token_pos(pos)] |