ruby-changes:65479
From: Nobuyoshi <ko1@a...>
Date: Tue, 16 Mar 2021 15:47:45 +0900 (JST)
Subject: [ruby-changes:65479] de8e6218a3 (master): [ruby/rdoc] Fixed CodeFence without blank lines
https://git.ruby-lang.org/ruby.git/commit/?id=de8e6218a3 From de8e6218a3257fe19b46ff0aa157e66f452ac8b7 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada <nobu@r...> Date: Mon, 22 Feb 2021 21:34:11 +0900 Subject: [ruby/rdoc] Fixed CodeFence without blank lines Currently a fenced code block needs a preceding blank line, it should not be required, as: https://github.github.com/gfm/#fenced-code-blocks > A fenced code block may interrupt a paragraph, and does not > require a blank line either before or after. Just recommended: https://docs.github.com/en/github/writing-on-github/creating-and-highlighting-code-blocks > We recommend placing a blank line before and after code blocks > to make the raw formatting easier to read. https://github.com/ruby/rdoc/commit/0e1776caf3 --- lib/rdoc/markdown.rb | 447 +++++++--------------------------------- test/rdoc/test_rdoc_markdown.rb | 36 +++- 2 files changed, 112 insertions(+), 371 deletions(-) diff --git a/lib/rdoc/markdown.rb b/lib/rdoc/markdown.rb index d9bfbd3..6ede5be 100644 --- a/lib/rdoc/markdown.rb +++ b/lib/rdoc/markdown.rb @@ -897,7 +897,7 @@ class RDoc::Markdown https://github.com/ruby/ruby/blob/trunk/lib/rdoc/markdown.rb#L897 return _tmp end - # Block = @BlankLine* (BlockQuote | Verbatim | CodeFence | Table | Note | Reference | HorizontalRule | Heading | OrderedList | BulletList | DefinitionList | HtmlBlock | StyleBlock | Para | Plain) + # Block = @BlankLine* (BlockQuote | Verbatim | CodeFence | Note | Reference | HorizontalRule | Heading | OrderedList | BulletList | DefinitionList | HtmlBlock | StyleBlock | Para | Plain) def _Block _save = self.pos @@ -923,9 +923,6 @@ class RDoc::Markdown https://github.com/ruby/ruby/blob/trunk/lib/rdoc/markdown.rb#L923 _tmp = apply(:_CodeFence) break if _tmp self.pos = _save2 - _tmp = apply(:_Table) - break if _tmp - self.pos = _save2 _tmp = apply(:_Note) break if _tmp self.pos = _save2 @@ -9323,7 +9320,7 @@ class RDoc::Markdown https://github.com/ruby/ruby/blob/trunk/lib/rdoc/markdown.rb#L9320 return _tmp end - # Inlines = (!@Endline Inline:i { i } | @Endline:c &Inline { c })+:chunks @Endline? { chunks } + # Inlines = (!@Endline Inline:i { i } | @Endline:c !(&{ github? } Ticks3 /[^`\n]*$/) &Inline { c })+:chunks @Endline? { chunks } def _Inlines _save = self.pos @@ -9370,12 +9367,41 @@ class RDoc::Markdown https://github.com/ruby/ruby/blob/trunk/lib/rdoc/markdown.rb#L9367 break end _save6 = self.pos - _tmp = apply(:_Inline) + + _save7 = self.pos + while true # sequence + _save8 = self.pos + _tmp = begin; github? ; end + self.pos = _save8 + unless _tmp + self.pos = _save7 + break + end + _tmp = apply(:_Ticks3) + unless _tmp + self.pos = _save7 + break + end + _tmp = scan(/\A(?-mix:[^`\n]*$)/) + unless _tmp + self.pos = _save7 + end + break + end # end sequence + + _tmp = _tmp ? nil : true self.pos = _save6 unless _tmp self.pos = _save5 break end + _save9 = self.pos + _tmp = apply(:_Inline) + self.pos = _save9 + unless _tmp + self.pos = _save5 + break + end @result = begin; c ; end _tmp = true unless _tmp @@ -9393,61 +9419,90 @@ class RDoc::Markdown https://github.com/ruby/ruby/blob/trunk/lib/rdoc/markdown.rb#L9419 _ary << @result while true - _save7 = self.pos + _save10 = self.pos while true # choice - _save8 = self.pos + _save11 = self.pos while true # sequence - _save9 = self.pos + _save12 = self.pos _tmp = _Endline() _tmp = _tmp ? nil : true - self.pos = _save9 + self.pos = _save12 unless _tmp - self.pos = _save8 + self.pos = _save11 break end _tmp = apply(:_Inline) i = @result unless _tmp - self.pos = _save8 + self.pos = _save11 break end @result = begin; i ; end _tmp = true unless _tmp - self.pos = _save8 + self.pos = _save11 end break end # end sequence break if _tmp - self.pos = _save7 + self.pos = _save10 - _save10 = self.pos + _save13 = self.pos while true # sequence _tmp = _Endline() c = @result unless _tmp - self.pos = _save10 + self.pos = _save13 break end - _save11 = self.pos + _save14 = self.pos + + _save15 = self.pos + while true # sequence + _save16 = self.pos + _tmp = begin; github? ; end + self.pos = _save16 + unless _tmp + self.pos = _save15 + break + end + _tmp = apply(:_Ticks3) + unless _tmp + self.pos = _save15 + break + end + _tmp = scan(/\A(?-mix:[^`\n]*$)/) + unless _tmp + self.pos = _save15 + end + break + end # end sequence + + _tmp = _tmp ? nil : true + self.pos = _save14 + unless _tmp + self.pos = _save13 + break + end + _save17 = self.pos _tmp = apply(:_Inline) - self.pos = _save11 + self.pos = _save17 unless _tmp - self.pos = _save10 + self.pos = _save13 break end @result = begin; c ; end _tmp = true unless _tmp - self.pos = _save10 + self.pos = _save13 end break end # end sequence break if _tmp - self.pos = _save7 + self.pos = _save10 break end # end choice @@ -9464,11 +9519,11 @@ class RDoc::Markdown https://github.com/ruby/ruby/blob/trunk/lib/rdoc/markdown.rb#L9519 self.pos = _save break end - _save12 = self.pos + _save18 = self.pos _tmp = _Endline() unless _tmp _tmp = true - self.pos = _save12 + self.pos = _save18 end unless _tmp self.pos = _save @@ -15850,343 +15905,6 @@ class RDoc::Markdown https://github.com/ruby/ruby/blob/trunk/lib/rdoc/markdown.rb#L15905 return _tmp end - # Table = &{ github? } TableRow:header TableLine:line TableRow+:body { table = RDoc::Markup::Table.new(header, line, body) } - def _Table - - _save = self.pos - while true # sequence - _save1 = self.pos - _tmp = begin; github? ; end - self.pos = _save1 - unless _tmp - self.pos = _save - break - end - _tmp = apply(:_TableRow) - header = @result - unless _tmp - self.pos = _save - break - end - _tmp = apply(:_TableLine) - line = @result - unless _tmp - self.pos = _save - break - end - _save2 = self.pos - _ary = [] - _tmp = apply(:_TableRow) - if _tmp - _ary << @result - while true - _tmp = apply(:_TableRow) - _ary << @result if _tmp - break unless _tmp - end - _tmp = true - @result = _ary - else - self.pos = _save2 - end - body = @result - unless _tmp - self.pos = _save - break - end - @result = begin; table = RDoc::Markup::Table.new(header, line, body) ; end - _tmp = true - unless _tmp - self.pos = _save - end - break - end # end sequence - - set_failed_rule :_Table unless _tmp - return _tmp - end - - # TableRow = < TableItem+:row > "|" @Newline { row } - def _TableRow - - _save = self.pos - while true # sequence - _text_start = self.pos - _save1 = self.pos - _ary = [] - _tmp = apply(:_TableItem) - if _tmp - _ary << @result - while true - _tmp = apply(:_TableItem) - _ary << @result if _tmp - break unless _tmp - end - _tmp = true - @result = _ary - else - self.pos = _save1 - end - row = @result - if _tmp - text = get_text(_text_start) - end - unless _tmp - self.pos = _save - break - end - _tmp = match_string("|") - unless _tmp - self.pos = _save - break - end - _tmp = _Newline() - unless _tmp - self.pos = _save - break - end - @result = begin; row ; end - _tmp = true - unless _tmp - self.pos = _save - end - break - end # end sequence - - set_failed_rule :_TableRow unless _tmp - return _tmp - end - - # TableItem = "|" < (!"|" !@Newline .)+ > { text.strip } - def _TableItem - - _save = self.pos - while true # sequence - _tmp = match_string("|") - unless _tmp - self.pos = _save - break - end - _text_start = self.pos - _save1 = self.pos - - _save2 = self.pos - while true # sequence - _save3 = self.pos - _tmp = match_string("|") - _tmp = _tmp ? nil (... truncated) -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/