summaryrefslogtreecommitdiff
path: root/lib/rdoc/markup
diff options
context:
space:
mode:
authoraycabta <aycabta@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-12-08 17:39:52 +0000
committeraycabta <aycabta@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-12-08 17:39:52 +0000
commit18911e99d2960433f4e77e5f6ce28bf187dad5a9 (patch)
tree53e7e346b56da5d75973fa2447b2175ee08b62c8 /lib/rdoc/markup
parentf6a38e180e5abc4db445b8e50d698ced71dbea87 (diff)
Merge RDoc 6.1.0.beta3 from upstream
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66286 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rdoc/markup')
-rw-r--r--lib/rdoc/markup/parser.rb22
1 files changed, 19 insertions, 3 deletions
diff --git a/lib/rdoc/markup/parser.rb b/lib/rdoc/markup/parser.rb
index f08587e676..14f1f6c719 100644
--- a/lib/rdoc/markup/parser.rb
+++ b/lib/rdoc/markup/parser.rb
@@ -9,8 +9,9 @@ require 'strscan'
# RDoc::Markup::ToHTML.
#
# The parser only handles the block-level constructs Paragraph, List,
-# ListItem, Heading, Verbatim, BlankLine and Rule. Inline markup such as
-# <tt>\+blah\+</tt> is handled separately by RDoc::Markup::AttributeManager.
+# ListItem, Heading, Verbatim, BlankLine, Rule and BlockQuote.
+# Inline markup such as <tt>\+blah\+</tt> is handled separately by
+# RDoc::Markup::AttributeManager.
#
# To see what markup the Parser implements read RDoc. To see how to use
# RDoc markup to format text in your program read RDoc::Markup.
@@ -381,6 +382,17 @@ class RDoc::Markup::Parser
when :TEXT then
unget
parse_text parent, indent
+ when :BLOCKQUOTE then
+ type, _, column = get
+ if type == :NEWLINE
+ type, _, column = get
+ end
+ unget if type
+ bq = RDoc::Markup::BlockQuote.new
+ p :blockquote_start => [data, column] if @debug
+ parse bq, column
+ p :blockquote_end => indent if @debug
+ parent << bq
when *LIST_TOKENS then
unget
parent << build_list(indent)
@@ -504,8 +516,12 @@ class RDoc::Markup::Parser
# text:: followed by spaces or end of line => :NOTE
when @s.scan(/(.*?)::( +|\r?$)/) then
[:NOTE, @s[1], *token_pos(pos)]
+ # >>> followed by end of line => :BLOCKQUOTE
+ when @s.scan(/>>> *(\w+)?$/) then
+ [:BLOCKQUOTE, @s[1], *token_pos(pos)]
# anything else: :TEXT
- else @s.scan(/(.*?)( )?\r?$/)
+ else
+ @s.scan(/(.*?)( )?\r?$/)
token = [:TEXT, @s[1], *token_pos(pos)]
if @s[2] then