[前][次][番号順一覧][スレッド一覧]

ruby-changes:73875

From: Nobuyoshi <ko1@a...>
Date: Thu, 6 Oct 2022 23:23:32 +0900 (JST)
Subject: [ruby-changes:73875] 28e24ce355 (master): [ruby/rdoc] Allow spaces around pipes

https://git.ruby-lang.org/ruby.git/commit/?id=28e24ce355

From 28e24ce35596b5faaf57f3ad4925656e22b23d1c Mon Sep 17 00:00:00 2001
From: Nobuyoshi Nakada <nobu@r...>
Date: Thu, 6 Oct 2022 17:20:48 +0900
Subject: [ruby/rdoc] Allow spaces around pipes

https://github.com/ruby/rdoc/commit/3b3a583580
---
 lib/rdoc/markdown.rb            | 68 ++++++++++++++++++++++++++++++++++++++---
 test/rdoc/test_rdoc_markdown.rb |  2 +-
 2 files changed, 65 insertions(+), 5 deletions(-)

diff --git a/lib/rdoc/markdown.rb b/lib/rdoc/markdown.rb
index e76d1d9888..8db9ae0f1d 100644
--- a/lib/rdoc/markdown.rb
+++ b/lib/rdoc/markdown.rb
@@ -16132,13 +16132,73 @@ class RDoc::Markdown https://github.com/ruby/ruby/blob/trunk/lib/rdoc/markdown.rb#L16132
     return _tmp
   end
 
-  # TableItem = < /(?:\\.|[^|\n])+/ > { text.strip.gsub(/\\(.)/, '\1')  }
+  # TableItem = < (!"|" !@Newline .)+ > { text.strip }
   def _TableItem
 
     _save = self.pos
     while true # sequence
       _text_start = self.pos
-      _tmp = scan(/\G(?-mix:(?:\\.|[^|\n])+)/)
+      _save1 = self.pos
+
+      _save2 = self.pos
+      while true # sequence
+        _save3 = self.pos
+        _tmp = match_string("|")
+        _tmp = _tmp ? nil : true
+        self.pos = _save3
+        unless _tmp
+          self.pos = _save2
+          break
+        end
+        _save4 = self.pos
+        _tmp = _Newline()
+        _tmp = _tmp ? nil : true
+        self.pos = _save4
+        unless _tmp
+          self.pos = _save2
+          break
+        end
+        _tmp = get_byte
+        unless _tmp
+          self.pos = _save2
+        end
+        break
+      end # end sequence
+
+      if _tmp
+        while true
+
+          _save5 = self.pos
+          while true # sequence
+            _save6 = self.pos
+            _tmp = match_string("|")
+            _tmp = _tmp ? nil : true
+            self.pos = _save6
+            unless _tmp
+              self.pos = _save5
+              break
+            end
+            _save7 = self.pos
+            _tmp = _Newline()
+            _tmp = _tmp ? nil : true
+            self.pos = _save7
+            unless _tmp
+              self.pos = _save5
+              break
+            end
+            _tmp = get_byte
+            unless _tmp
+              self.pos = _save5
+            end
+            break
+          end # end sequence
+
+          break unless _tmp
+        end
+        _tmp = true
+      else
+        self.pos = _save1
+      end
       if _tmp
         text = get_text(_text_start)
       end
@@ -16146,7 +16206,7 @@ class RDoc::Markdown https://github.com/ruby/ruby/blob/trunk/lib/rdoc/markdown.rb#L16206
         self.pos = _save
         break
       end
-      @result = begin;  text.strip.gsub(/\\(.)/, '\1')  ; end
+      @result = begin;  text.strip ; end
       _tmp = true
       unless _tmp
         self.pos = _save
@@ -16746,7 +16806,7 @@ class RDoc::Markdown https://github.com/ruby/ruby/blob/trunk/lib/rdoc/markdown.rb#L16806
   Rules[:_TableHead] = rule_info("TableHead", "TableItem2+:items \"|\"? @Newline { items }")
   Rules[:_TableRow] = rule_info("TableRow", "((TableItem:item1 TableItem2*:items { [item1, *items] }):row | TableItem2+:row) \"|\"? @Newline { row }")
   Rules[:_TableItem2] = rule_info("TableItem2", "\"|\" TableItem")
-  Rules[:_TableItem] = rule_info("TableItem", "< /(?:\\\\.|[^|\\n])+/ > { text.strip.gsub(/\\\\(.)/, '\\1')  }")
+  Rules[:_TableItem] = rule_info("TableItem", "< (!\"|\" !@Newline .)+ > { text.strip }")
   Rules[:_TableLine] = rule_info("TableLine", "((TableAlign:align1 TableAlign2*:aligns {[align1, *aligns] }):line | TableAlign2+:line) \"|\"? @Newline { line }")
   Rules[:_TableAlign2] = rule_info("TableAlign2", "\"|\" @Sp TableAlign")
   Rules[:_TableAlign] = rule_info("TableAlign", "< /:?-+:?/ > @Sp { text.start_with?(\":\") ? :left :                 text.end_with?(\":\") ? :right : nil               }")
diff --git a/test/rdoc/test_rdoc_markdown.rb b/test/rdoc/test_rdoc_markdown.rb
index a02ff7c8cc..75195dab56 100644
--- a/test/rdoc/test_rdoc_markdown.rb
+++ b/test/rdoc/test_rdoc_markdown.rb
@@ -1065,7 +1065,7 @@ and an extra note.[^2] https://github.com/ruby/ruby/blob/trunk/test/rdoc/test_rdoc_markdown.rb#L1065
   def test_gfm_table_2
     doc = parse <<~'MD'
     | Cmd | Returns | Meaning
-    ------|---------|--------
+    ----- | ------- | -------
     |"b"  | boolean | True if file1 is a block device
     "c"   | boolean | True if file1 is a character device
     |"\|" | boolean | escaped bar \| test
-- 
cgit v1.2.1


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]