rdoc 7.2.0 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +3 -4
  3. data/LICENSE.rdoc +4 -0
  4. data/README.md +43 -2
  5. data/doc/markup_reference/markdown.md +104 -3
  6. data/lib/rdoc/code_object/alias.rb +2 -8
  7. data/lib/rdoc/code_object/any_method.rb +11 -6
  8. data/lib/rdoc/code_object/attr.rb +11 -6
  9. data/lib/rdoc/code_object/class_module.rb +62 -32
  10. data/lib/rdoc/code_object/constant.rb +29 -3
  11. data/lib/rdoc/code_object/context/section.rb +4 -35
  12. data/lib/rdoc/code_object/context.rb +39 -34
  13. data/lib/rdoc/code_object/method_attr.rb +9 -15
  14. data/lib/rdoc/code_object/mixin.rb +2 -2
  15. data/lib/rdoc/code_object/top_level.rb +9 -3
  16. data/lib/rdoc/code_object.rb +2 -4
  17. data/lib/rdoc/comment.rb +0 -65
  18. data/lib/rdoc/cross_reference.rb +7 -27
  19. data/lib/rdoc/encoding.rb +3 -3
  20. data/lib/rdoc/generator/aliki.rb +17 -0
  21. data/lib/rdoc/generator/darkfish.rb +12 -6
  22. data/lib/rdoc/generator/json_index.rb +2 -2
  23. data/lib/rdoc/generator/markup.rb +56 -31
  24. data/lib/rdoc/generator/template/aliki/DESIGN.md +536 -0
  25. data/lib/rdoc/generator/template/aliki/_aside_toc.rhtml +1 -1
  26. data/lib/rdoc/generator/template/aliki/_head.rhtml +1 -1
  27. data/lib/rdoc/generator/template/aliki/_sidebar_extends.rhtml +8 -6
  28. data/lib/rdoc/generator/template/aliki/_sidebar_includes.rhtml +8 -6
  29. data/lib/rdoc/generator/template/aliki/_sidebar_installed.rhtml +1 -1
  30. data/lib/rdoc/generator/template/aliki/_sidebar_pages.rhtml +2 -2
  31. data/lib/rdoc/generator/template/aliki/_sidebar_sections.rhtml +1 -1
  32. data/lib/rdoc/generator/template/aliki/_sidebar_toggle.rhtml +1 -1
  33. data/lib/rdoc/generator/template/aliki/class.rhtml +56 -46
  34. data/lib/rdoc/generator/template/aliki/css/rdoc.css +337 -111
  35. data/lib/rdoc/generator/template/aliki/index.rhtml +1 -1
  36. data/lib/rdoc/generator/template/aliki/js/aliki.js +20 -18
  37. data/lib/rdoc/generator/template/aliki/page.rhtml +1 -1
  38. data/lib/rdoc/generator/template/aliki/servlet_not_found.rhtml +1 -1
  39. data/lib/rdoc/generator/template/aliki/servlet_root.rhtml +2 -2
  40. data/lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml +8 -6
  41. data/lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml +8 -6
  42. data/lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml +1 -1
  43. data/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +1 -1
  44. data/lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml +1 -1
  45. data/lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml +5 -5
  46. data/lib/rdoc/generator/template/darkfish/class.rhtml +18 -21
  47. data/lib/rdoc/generator/template/darkfish/css/rdoc.css +0 -1
  48. data/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +3 -3
  49. data/lib/rdoc/i18n/text.rb +3 -3
  50. data/lib/rdoc/markdown.kpeg +15 -10
  51. data/lib/rdoc/markdown.rb +289 -104
  52. data/lib/rdoc/markup/document.rb +2 -2
  53. data/lib/rdoc/markup/formatter.rb +24 -34
  54. data/lib/rdoc/markup/heading.rb +1 -4
  55. data/lib/rdoc/markup/indented_paragraph.rb +1 -1
  56. data/lib/rdoc/markup/list.rb +2 -2
  57. data/lib/rdoc/markup/list_item.rb +2 -2
  58. data/lib/rdoc/markup/pre_process.rb +0 -25
  59. data/lib/rdoc/markup/to_ansi.rb +1 -1
  60. data/lib/rdoc/markup/to_bs.rb +1 -1
  61. data/lib/rdoc/markup/to_html.rb +131 -53
  62. data/lib/rdoc/markup/to_html_crossref.rb +97 -71
  63. data/lib/rdoc/markup/to_html_snippet.rb +5 -5
  64. data/lib/rdoc/markup/to_joined_paragraph.rb +0 -5
  65. data/lib/rdoc/markup/to_label.rb +2 -2
  66. data/lib/rdoc/markup/to_markdown.rb +1 -1
  67. data/lib/rdoc/markup/to_rdoc.rb +2 -2
  68. data/lib/rdoc/markup/to_table_of_contents.rb +1 -1
  69. data/lib/rdoc/markup/to_tt_only.rb +0 -7
  70. data/lib/rdoc/markup/verbatim.rb +1 -1
  71. data/lib/rdoc/options.rb +36 -51
  72. data/lib/rdoc/parser/c.rb +7 -6
  73. data/lib/rdoc/parser/rbs.rb +275 -0
  74. data/lib/rdoc/parser/ruby.rb +954 -2066
  75. data/lib/rdoc/parser/ruby_colorizer.rb +253 -0
  76. data/lib/rdoc/parser.rb +3 -2
  77. data/lib/rdoc/rbs_helper.rb +186 -0
  78. data/lib/rdoc/rdoc.rb +196 -24
  79. data/lib/rdoc/ri/driver.rb +8 -2
  80. data/lib/rdoc/ri/paths.rb +1 -1
  81. data/lib/rdoc/{servlet.rb → ri/servlet.rb} +5 -5
  82. data/lib/rdoc/ri.rb +4 -3
  83. data/lib/rdoc/rubygems_hook.rb +11 -11
  84. data/lib/rdoc/server.rb +460 -0
  85. data/lib/rdoc/stats.rb +147 -124
  86. data/lib/rdoc/store.rb +212 -4
  87. data/lib/rdoc/task.rb +16 -15
  88. data/lib/rdoc/text.rb +1 -118
  89. data/lib/rdoc/token_stream.rb +11 -33
  90. data/lib/rdoc/version.rb +1 -1
  91. data/lib/rdoc.rb +35 -7
  92. data/lib/rubygems_plugin.rb +2 -11
  93. data/rdoc-logo.svg +43 -0
  94. data/rdoc.gemspec +6 -4
  95. metadata +35 -18
  96. data/lib/rdoc/code_object/anon_class.rb +0 -10
  97. data/lib/rdoc/code_object/ghost_method.rb +0 -6
  98. data/lib/rdoc/code_object/meta_method.rb +0 -6
  99. data/lib/rdoc/parser/prism_ruby.rb +0 -1112
  100. data/lib/rdoc/parser/ripper_state_lex.rb +0 -302
  101. data/lib/rdoc/parser/ruby_tools.rb +0 -163
data/lib/rdoc/markdown.rb CHANGED
@@ -788,6 +788,8 @@ class RDoc::Markdown
788
788
  # the note order list for proper display at the end of the document.
789
789
 
790
790
  def note_for ref
791
+ return unless @note_order
792
+
791
793
  @note_order << ref
792
794
 
793
795
  label = @note_order.length
@@ -1656,7 +1658,7 @@ class RDoc::Markdown
1656
1658
  return _tmp
1657
1659
  end
1658
1660
 
1659
- # BlockQuoteRaw = @StartList:a (">" " "? Line:l { a << l } (!">" !@BlankLine Line:c { a << c })* (@BlankLine:n { a << n })*)+ { inner_parse a.join }
1661
+ # BlockQuoteRaw = @StartList:a (">" " "? Line:l { a << l } (!">" !@BlankLine !(AtxStart @Spacechar) !Bullet !Enumerator !(&{ github? } Ticks3) Line:c { a << c })* (">" @BlankLine:n { a << n })*)+ { inner_parse a.join }
1660
1662
  def _BlockQuoteRaw
1661
1663
 
1662
1664
  _save = self.pos
@@ -1718,6 +1720,68 @@ class RDoc::Markdown
1718
1720
  self.pos = _save5
1719
1721
  break
1720
1722
  end
1723
+ _save8 = self.pos
1724
+
1725
+ _save9 = self.pos
1726
+ while true # sequence
1727
+ _tmp = apply(:_AtxStart)
1728
+ unless _tmp
1729
+ self.pos = _save9
1730
+ break
1731
+ end
1732
+ _tmp = _Spacechar()
1733
+ unless _tmp
1734
+ self.pos = _save9
1735
+ end
1736
+ break
1737
+ end # end sequence
1738
+
1739
+ _tmp = _tmp ? nil : true
1740
+ self.pos = _save8
1741
+ unless _tmp
1742
+ self.pos = _save5
1743
+ break
1744
+ end
1745
+ _save10 = self.pos
1746
+ _tmp = apply(:_Bullet)
1747
+ _tmp = _tmp ? nil : true
1748
+ self.pos = _save10
1749
+ unless _tmp
1750
+ self.pos = _save5
1751
+ break
1752
+ end
1753
+ _save11 = self.pos
1754
+ _tmp = apply(:_Enumerator)
1755
+ _tmp = _tmp ? nil : true
1756
+ self.pos = _save11
1757
+ unless _tmp
1758
+ self.pos = _save5
1759
+ break
1760
+ end
1761
+ _save12 = self.pos
1762
+
1763
+ _save13 = self.pos
1764
+ while true # sequence
1765
+ _save14 = self.pos
1766
+ _tmp = begin; github? ; end
1767
+ self.pos = _save14
1768
+ unless _tmp
1769
+ self.pos = _save13
1770
+ break
1771
+ end
1772
+ _tmp = apply(:_Ticks3)
1773
+ unless _tmp
1774
+ self.pos = _save13
1775
+ end
1776
+ break
1777
+ end # end sequence
1778
+
1779
+ _tmp = _tmp ? nil : true
1780
+ self.pos = _save12
1781
+ unless _tmp
1782
+ self.pos = _save5
1783
+ break
1784
+ end
1721
1785
  _tmp = apply(:_Line)
1722
1786
  c = @result
1723
1787
  unless _tmp
@@ -1741,18 +1805,23 @@ class RDoc::Markdown
1741
1805
  end
1742
1806
  while true
1743
1807
 
1744
- _save9 = self.pos
1808
+ _save16 = self.pos
1745
1809
  while true # sequence
1810
+ _tmp = match_string(">")
1811
+ unless _tmp
1812
+ self.pos = _save16
1813
+ break
1814
+ end
1746
1815
  _tmp = _BlankLine()
1747
1816
  n = @result
1748
1817
  unless _tmp
1749
- self.pos = _save9
1818
+ self.pos = _save16
1750
1819
  break
1751
1820
  end
1752
1821
  @result = begin; a << n ; end
1753
1822
  _tmp = true
1754
1823
  unless _tmp
1755
- self.pos = _save9
1824
+ self.pos = _save16
1756
1825
  end
1757
1826
  break
1758
1827
  end # end sequence
@@ -1769,65 +1838,127 @@ class RDoc::Markdown
1769
1838
  if _tmp
1770
1839
  while true
1771
1840
 
1772
- _save10 = self.pos
1841
+ _save17 = self.pos
1773
1842
  while true # sequence
1774
1843
  _tmp = match_string(">")
1775
1844
  unless _tmp
1776
- self.pos = _save10
1845
+ self.pos = _save17
1777
1846
  break
1778
1847
  end
1779
- _save11 = self.pos
1848
+ _save18 = self.pos
1780
1849
  _tmp = match_string(" ")
1781
1850
  unless _tmp
1782
1851
  _tmp = true
1783
- self.pos = _save11
1852
+ self.pos = _save18
1784
1853
  end
1785
1854
  unless _tmp
1786
- self.pos = _save10
1855
+ self.pos = _save17
1787
1856
  break
1788
1857
  end
1789
1858
  _tmp = apply(:_Line)
1790
1859
  l = @result
1791
1860
  unless _tmp
1792
- self.pos = _save10
1861
+ self.pos = _save17
1793
1862
  break
1794
1863
  end
1795
1864
  @result = begin; a << l ; end
1796
1865
  _tmp = true
1797
1866
  unless _tmp
1798
- self.pos = _save10
1867
+ self.pos = _save17
1799
1868
  break
1800
1869
  end
1801
1870
  while true
1802
1871
 
1803
- _save13 = self.pos
1872
+ _save20 = self.pos
1804
1873
  while true # sequence
1805
- _save14 = self.pos
1874
+ _save21 = self.pos
1806
1875
  _tmp = match_string(">")
1807
1876
  _tmp = _tmp ? nil : true
1808
- self.pos = _save14
1877
+ self.pos = _save21
1809
1878
  unless _tmp
1810
- self.pos = _save13
1879
+ self.pos = _save20
1811
1880
  break
1812
1881
  end
1813
- _save15 = self.pos
1882
+ _save22 = self.pos
1814
1883
  _tmp = _BlankLine()
1815
1884
  _tmp = _tmp ? nil : true
1816
- self.pos = _save15
1885
+ self.pos = _save22
1817
1886
  unless _tmp
1818
- self.pos = _save13
1887
+ self.pos = _save20
1888
+ break
1889
+ end
1890
+ _save23 = self.pos
1891
+
1892
+ _save24 = self.pos
1893
+ while true # sequence
1894
+ _tmp = apply(:_AtxStart)
1895
+ unless _tmp
1896
+ self.pos = _save24
1897
+ break
1898
+ end
1899
+ _tmp = _Spacechar()
1900
+ unless _tmp
1901
+ self.pos = _save24
1902
+ end
1903
+ break
1904
+ end # end sequence
1905
+
1906
+ _tmp = _tmp ? nil : true
1907
+ self.pos = _save23
1908
+ unless _tmp
1909
+ self.pos = _save20
1910
+ break
1911
+ end
1912
+ _save25 = self.pos
1913
+ _tmp = apply(:_Bullet)
1914
+ _tmp = _tmp ? nil : true
1915
+ self.pos = _save25
1916
+ unless _tmp
1917
+ self.pos = _save20
1918
+ break
1919
+ end
1920
+ _save26 = self.pos
1921
+ _tmp = apply(:_Enumerator)
1922
+ _tmp = _tmp ? nil : true
1923
+ self.pos = _save26
1924
+ unless _tmp
1925
+ self.pos = _save20
1926
+ break
1927
+ end
1928
+ _save27 = self.pos
1929
+
1930
+ _save28 = self.pos
1931
+ while true # sequence
1932
+ _save29 = self.pos
1933
+ _tmp = begin; github? ; end
1934
+ self.pos = _save29
1935
+ unless _tmp
1936
+ self.pos = _save28
1937
+ break
1938
+ end
1939
+ _tmp = apply(:_Ticks3)
1940
+ unless _tmp
1941
+ self.pos = _save28
1942
+ end
1943
+ break
1944
+ end # end sequence
1945
+
1946
+ _tmp = _tmp ? nil : true
1947
+ self.pos = _save27
1948
+ unless _tmp
1949
+ self.pos = _save20
1819
1950
  break
1820
1951
  end
1821
1952
  _tmp = apply(:_Line)
1822
1953
  c = @result
1823
1954
  unless _tmp
1824
- self.pos = _save13
1955
+ self.pos = _save20
1825
1956
  break
1826
1957
  end
1827
1958
  @result = begin; a << c ; end
1828
1959
  _tmp = true
1829
1960
  unless _tmp
1830
- self.pos = _save13
1961
+ self.pos = _save20
1831
1962
  end
1832
1963
  break
1833
1964
  end # end sequence
@@ -1836,23 +1967,28 @@ class RDoc::Markdown
1836
1967
  end
1837
1968
  _tmp = true
1838
1969
  unless _tmp
1839
- self.pos = _save10
1970
+ self.pos = _save17
1840
1971
  break
1841
1972
  end
1842
1973
  while true
1843
1974
 
1844
- _save17 = self.pos
1975
+ _save31 = self.pos
1845
1976
  while true # sequence
1977
+ _tmp = match_string(">")
1978
+ unless _tmp
1979
+ self.pos = _save31
1980
+ break
1981
+ end
1846
1982
  _tmp = _BlankLine()
1847
1983
  n = @result
1848
1984
  unless _tmp
1849
- self.pos = _save17
1985
+ self.pos = _save31
1850
1986
  break
1851
1987
  end
1852
1988
  @result = begin; a << n ; end
1853
1989
  _tmp = true
1854
1990
  unless _tmp
1855
- self.pos = _save17
1991
+ self.pos = _save31
1856
1992
  end
1857
1993
  break
1858
1994
  end # end sequence
@@ -1861,7 +1997,7 @@ class RDoc::Markdown
1861
1997
  end
1862
1998
  _tmp = true
1863
1999
  unless _tmp
1864
- self.pos = _save10
2000
+ self.pos = _save17
1865
2001
  end
1866
2002
  break
1867
2003
  end # end sequence
@@ -9653,7 +9789,7 @@ class RDoc::Markdown
9653
9789
  return _tmp
9654
9790
  end
9655
9791
 
9656
- # Inline = (Str | @Endline | UlOrStarLine | @Space | Strong | Emph | Strike | Image | Link | NoteReference | InlineNote | Code | RawHtml | Entity | EscapedChar | Symbol)
9792
+ # Inline = (Str | @Endline | UlOrStarLine | @Space | Strong | Emph | Strike | Image | Link | NoteReference | InlineNote | Code | RawHtml | StrippedComment | Entity | EscapedChar | Symbol)
9657
9793
  def _Inline
9658
9794
 
9659
9795
  _save = self.pos
@@ -9697,6 +9833,9 @@ class RDoc::Markdown
9697
9833
  _tmp = apply(:_RawHtml)
9698
9834
  break if _tmp
9699
9835
  self.pos = _save
9836
+ _tmp = apply(:_StrippedComment)
9837
+ break if _tmp
9838
+ self.pos = _save
9700
9839
  _tmp = apply(:_Entity)
9701
9840
  break if _tmp
9702
9841
  self.pos = _save
@@ -13997,7 +14136,7 @@ class RDoc::Markdown
13997
14136
  return _tmp
13998
14137
  end
13999
14138
 
14000
- # RawHtml = < (HtmlComment | HtmlBlockScript | HtmlTag) > { if html? then text else '' end }
14139
+ # RawHtml = < (HtmlBlockScript | HtmlTag) > { html? ? text : '' }
14001
14140
  def _RawHtml
14002
14141
 
14003
14142
  _save = self.pos
@@ -14006,9 +14145,6 @@ class RDoc::Markdown
14006
14145
 
14007
14146
  _save1 = self.pos
14008
14147
  while true # choice
14009
- _tmp = apply(:_HtmlComment)
14010
- break if _tmp
14011
- self.pos = _save1
14012
14148
  _tmp = apply(:_HtmlBlockScript)
14013
14149
  break if _tmp
14014
14150
  self.pos = _save1
@@ -14025,7 +14161,7 @@ class RDoc::Markdown
14025
14161
  self.pos = _save
14026
14162
  break
14027
14163
  end
14028
- @result = begin; if html? then text else '' end ; end
14164
+ @result = begin; html? ? text : '' ; end
14029
14165
  _tmp = true
14030
14166
  unless _tmp
14031
14167
  self.pos = _save
@@ -14037,6 +14173,28 @@ class RDoc::Markdown
14037
14173
  return _tmp
14038
14174
  end
14039
14175
 
14176
+ # StrippedComment = HtmlComment { '' }
14177
+ def _StrippedComment
14178
+
14179
+ _save = self.pos
14180
+ while true # sequence
14181
+ _tmp = apply(:_HtmlComment)
14182
+ unless _tmp
14183
+ self.pos = _save
14184
+ break
14185
+ end
14186
+ @result = begin; '' ; end
14187
+ _tmp = true
14188
+ unless _tmp
14189
+ self.pos = _save
14190
+ end
14191
+ break
14192
+ end # end sequence
14193
+
14194
+ set_failed_rule :_StrippedComment unless _tmp
14195
+ return _tmp
14196
+ end
14197
+
14040
14198
  # BlankLine = @Sp @Newline { "\n" }
14041
14199
  def _BlankLine
14042
14200
 
@@ -15320,7 +15478,7 @@ class RDoc::Markdown
15320
15478
  return _tmp
15321
15479
  end
15322
15480
 
15323
- # InlineNote = &{ notes? } "^[" @StartList:a (!"]" Inline:l { a << l })+ "]" { ref = [:inline, @note_order.length] @footnotes[ref] = paragraph a note_for ref }
15481
+ # InlineNote = &{ notes? } "^[" @StartList:a (!"]" Inline:l { a << l })+ "]" { if @note_order ref = [:inline, @note_order.length] @footnotes[ref] = paragraph a note_for ref end }
15324
15482
  def _InlineNote
15325
15483
 
15326
15484
  _save = self.pos
@@ -15411,10 +15569,12 @@ class RDoc::Markdown
15411
15569
  self.pos = _save
15412
15570
  break
15413
15571
  end
15414
- @result = begin; ref = [:inline, @note_order.length]
15415
- @footnotes[ref] = paragraph a
15572
+ @result = begin; if @note_order
15573
+ ref = [:inline, @note_order.length]
15574
+ @footnotes[ref] = paragraph a
15416
15575
 
15417
- note_for ref
15576
+ note_for ref
15577
+ end
15418
15578
  ; end
15419
15579
  _tmp = true
15420
15580
  unless _tmp
@@ -15570,7 +15730,7 @@ class RDoc::Markdown
15570
15730
  return _tmp
15571
15731
  end
15572
15732
 
15573
- # CodeFence = &{ github? } Ticks3 (@Sp StrChunk:format)? Spnl < ((!"`" Nonspacechar)+ | !Ticks3 /`+/ | Spacechar | @Newline)+ > Ticks3 @Sp @Newline* { verbatim = RDoc::Markup::Verbatim.new text verbatim.format = format.intern if format.instance_of?(String) verbatim }
15733
+ # CodeFence = &{ github? } Ticks3 (@Sp StrChunk:format)? @Sp @Newline? < ((!"`" Nonspacechar)+ | !Ticks3 /`+/ | Spacechar | @Newline)+ > Ticks3 @Sp @Newline* { verbatim = RDoc::Markup::Verbatim.new text verbatim.format = format.intern if format.instance_of?(String) verbatim }
15574
15734
  def _CodeFence
15575
15735
 
15576
15736
  _save = self.pos
@@ -15612,31 +15772,41 @@ class RDoc::Markdown
15612
15772
  self.pos = _save
15613
15773
  break
15614
15774
  end
15615
- _tmp = apply(:_Spnl)
15775
+ _tmp = _Sp()
15616
15776
  unless _tmp
15617
15777
  self.pos = _save
15618
15778
  break
15619
15779
  end
15620
- _text_start = self.pos
15621
15780
  _save4 = self.pos
15622
-
15781
+ _tmp = _Newline()
15782
+ unless _tmp
15783
+ _tmp = true
15784
+ self.pos = _save4
15785
+ end
15786
+ unless _tmp
15787
+ self.pos = _save
15788
+ break
15789
+ end
15790
+ _text_start = self.pos
15623
15791
  _save5 = self.pos
15624
- while true # choice
15625
- _save6 = self.pos
15626
15792
 
15793
+ _save6 = self.pos
15794
+ while true # choice
15627
15795
  _save7 = self.pos
15796
+
15797
+ _save8 = self.pos
15628
15798
  while true # sequence
15629
- _save8 = self.pos
15799
+ _save9 = self.pos
15630
15800
  _tmp = match_string("`")
15631
15801
  _tmp = _tmp ? nil : true
15632
- self.pos = _save8
15802
+ self.pos = _save9
15633
15803
  unless _tmp
15634
- self.pos = _save7
15804
+ self.pos = _save8
15635
15805
  break
15636
15806
  end
15637
15807
  _tmp = apply(:_Nonspacechar)
15638
15808
  unless _tmp
15639
- self.pos = _save7
15809
+ self.pos = _save8
15640
15810
  end
15641
15811
  break
15642
15812
  end # end sequence
@@ -15644,19 +15814,19 @@ class RDoc::Markdown
15644
15814
  if _tmp
15645
15815
  while true
15646
15816
 
15647
- _save9 = self.pos
15817
+ _save10 = self.pos
15648
15818
  while true # sequence
15649
- _save10 = self.pos
15819
+ _save11 = self.pos
15650
15820
  _tmp = match_string("`")
15651
15821
  _tmp = _tmp ? nil : true
15652
- self.pos = _save10
15822
+ self.pos = _save11
15653
15823
  unless _tmp
15654
- self.pos = _save9
15824
+ self.pos = _save10
15655
15825
  break
15656
15826
  end
15657
15827
  _tmp = apply(:_Nonspacechar)
15658
15828
  unless _tmp
15659
- self.pos = _save9
15829
+ self.pos = _save10
15660
15830
  end
15661
15831
  break
15662
15832
  end # end sequence
@@ -15665,59 +15835,59 @@ class RDoc::Markdown
15665
15835
  end
15666
15836
  _tmp = true
15667
15837
  else
15668
- self.pos = _save6
15838
+ self.pos = _save7
15669
15839
  end
15670
15840
  break if _tmp
15671
- self.pos = _save5
15841
+ self.pos = _save6
15672
15842
 
15673
- _save11 = self.pos
15843
+ _save12 = self.pos
15674
15844
  while true # sequence
15675
- _save12 = self.pos
15845
+ _save13 = self.pos
15676
15846
  _tmp = apply(:_Ticks3)
15677
15847
  _tmp = _tmp ? nil : true
15678
- self.pos = _save12
15848
+ self.pos = _save13
15679
15849
  unless _tmp
15680
- self.pos = _save11
15850
+ self.pos = _save12
15681
15851
  break
15682
15852
  end
15683
15853
  _tmp = scan(/\G(?-mix:`+)/)
15684
15854
  unless _tmp
15685
- self.pos = _save11
15855
+ self.pos = _save12
15686
15856
  end
15687
15857
  break
15688
15858
  end # end sequence
15689
15859
 
15690
15860
  break if _tmp
15691
- self.pos = _save5
15861
+ self.pos = _save6
15692
15862
  _tmp = apply(:_Spacechar)
15693
15863
  break if _tmp
15694
- self.pos = _save5
15864
+ self.pos = _save6
15695
15865
  _tmp = _Newline()
15696
15866
  break if _tmp
15697
- self.pos = _save5
15867
+ self.pos = _save6
15698
15868
  break
15699
15869
  end # end choice
15700
15870
 
15701
15871
  if _tmp
15702
15872
  while true
15703
15873
 
15704
- _save13 = self.pos
15874
+ _save14 = self.pos
15705
15875
  while true # choice
15706
- _save14 = self.pos
15707
-
15708
15876
  _save15 = self.pos
15877
+
15878
+ _save16 = self.pos
15709
15879
  while true # sequence
15710
- _save16 = self.pos
15880
+ _save17 = self.pos
15711
15881
  _tmp = match_string("`")
15712
15882
  _tmp = _tmp ? nil : true
15713
- self.pos = _save16
15883
+ self.pos = _save17
15714
15884
  unless _tmp
15715
- self.pos = _save15
15885
+ self.pos = _save16
15716
15886
  break
15717
15887
  end
15718
15888
  _tmp = apply(:_Nonspacechar)
15719
15889
  unless _tmp
15720
- self.pos = _save15
15890
+ self.pos = _save16
15721
15891
  end
15722
15892
  break
15723
15893
  end # end sequence
@@ -15725,19 +15895,19 @@ class RDoc::Markdown
15725
15895
  if _tmp
15726
15896
  while true
15727
15897
 
15728
- _save17 = self.pos
15898
+ _save18 = self.pos
15729
15899
  while true # sequence
15730
- _save18 = self.pos
15900
+ _save19 = self.pos
15731
15901
  _tmp = match_string("`")
15732
15902
  _tmp = _tmp ? nil : true
15733
- self.pos = _save18
15903
+ self.pos = _save19
15734
15904
  unless _tmp
15735
- self.pos = _save17
15905
+ self.pos = _save18
15736
15906
  break
15737
15907
  end
15738
15908
  _tmp = apply(:_Nonspacechar)
15739
15909
  unless _tmp
15740
- self.pos = _save17
15910
+ self.pos = _save18
15741
15911
  end
15742
15912
  break
15743
15913
  end # end sequence
@@ -15746,36 +15916,36 @@ class RDoc::Markdown
15746
15916
  end
15747
15917
  _tmp = true
15748
15918
  else
15749
- self.pos = _save14
15919
+ self.pos = _save15
15750
15920
  end
15751
15921
  break if _tmp
15752
- self.pos = _save13
15922
+ self.pos = _save14
15753
15923
 
15754
- _save19 = self.pos
15924
+ _save20 = self.pos
15755
15925
  while true # sequence
15756
- _save20 = self.pos
15926
+ _save21 = self.pos
15757
15927
  _tmp = apply(:_Ticks3)
15758
15928
  _tmp = _tmp ? nil : true
15759
- self.pos = _save20
15929
+ self.pos = _save21
15760
15930
  unless _tmp
15761
- self.pos = _save19
15931
+ self.pos = _save20
15762
15932
  break
15763
15933
  end
15764
15934
  _tmp = scan(/\G(?-mix:`+)/)
15765
15935
  unless _tmp
15766
- self.pos = _save19
15936
+ self.pos = _save20
15767
15937
  end
15768
15938
  break
15769
15939
  end # end sequence
15770
15940
 
15771
15941
  break if _tmp
15772
- self.pos = _save13
15942
+ self.pos = _save14
15773
15943
  _tmp = apply(:_Spacechar)
15774
15944
  break if _tmp
15775
- self.pos = _save13
15945
+ self.pos = _save14
15776
15946
  _tmp = _Newline()
15777
15947
  break if _tmp
15778
- self.pos = _save13
15948
+ self.pos = _save14
15779
15949
  break
15780
15950
  end # end choice
15781
15951
 
@@ -15783,7 +15953,7 @@ class RDoc::Markdown
15783
15953
  end
15784
15954
  _tmp = true
15785
15955
  else
15786
- self.pos = _save4
15956
+ self.pos = _save5
15787
15957
  end
15788
15958
  if _tmp
15789
15959
  text = get_text(_text_start)
@@ -15937,7 +16107,7 @@ class RDoc::Markdown
15937
16107
  return _tmp
15938
16108
  end
15939
16109
 
15940
- # TableRow = ((TableItem:item1 TableItem2*:items { [item1, *items] }):row | TableItem2+:row) "|"? @Newline { row }
16110
+ # TableRow = ((TableItem:item1 TableItem2+:items { [item1, *items] }):row | TableItem2+:row) "|"? @Newline { row }
15941
16111
  def _TableRow
15942
16112
 
15943
16113
  _save = self.pos
@@ -15954,14 +16124,21 @@ class RDoc::Markdown
15954
16124
  self.pos = _save2
15955
16125
  break
15956
16126
  end
16127
+ _save3 = self.pos
15957
16128
  _ary = []
15958
- while true
15959
- _tmp = apply(:_TableItem2)
15960
- _ary << @result if _tmp
15961
- break unless _tmp
16129
+ _tmp = apply(:_TableItem2)
16130
+ if _tmp
16131
+ _ary << @result
16132
+ while true
16133
+ _tmp = apply(:_TableItem2)
16134
+ _ary << @result if _tmp
16135
+ break unless _tmp
16136
+ end
16137
+ _tmp = true
16138
+ @result = _ary
16139
+ else
16140
+ self.pos = _save3
15962
16141
  end
15963
- _tmp = true
15964
- @result = _ary
15965
16142
  items = @result
15966
16143
  unless _tmp
15967
16144
  self.pos = _save2
@@ -16077,7 +16254,7 @@ class RDoc::Markdown
16077
16254
  return _tmp
16078
16255
  end
16079
16256
 
16080
- # TableLine = ((TableAlign:align1 TableAlign2*:aligns {[align1, *aligns] }):line | TableAlign2+:line) "|"? @Newline { line }
16257
+ # TableLine = ((TableAlign:align1 TableAlign2+:aligns {[align1, *aligns] }):line | TableAlign2+:line) "|"? @Newline { line }
16081
16258
  def _TableLine
16082
16259
 
16083
16260
  _save = self.pos
@@ -16094,14 +16271,21 @@ class RDoc::Markdown
16094
16271
  self.pos = _save2
16095
16272
  break
16096
16273
  end
16274
+ _save3 = self.pos
16097
16275
  _ary = []
16098
- while true
16099
- _tmp = apply(:_TableAlign2)
16100
- _ary << @result if _tmp
16101
- break unless _tmp
16276
+ _tmp = apply(:_TableAlign2)
16277
+ if _tmp
16278
+ _ary << @result
16279
+ while true
16280
+ _tmp = apply(:_TableAlign2)
16281
+ _ary << @result if _tmp
16282
+ break unless _tmp
16283
+ end
16284
+ _tmp = true
16285
+ @result = _ary
16286
+ else
16287
+ self.pos = _save3
16102
16288
  end
16103
- _tmp = true
16104
- @result = _ary
16105
16289
  aligns = @result
16106
16290
  unless _tmp
16107
16291
  self.pos = _save2
@@ -16443,7 +16627,7 @@ class RDoc::Markdown
16443
16627
  Rules[:_SetextHeading2] = rule_info("SetextHeading2", "&(@RawLine SetextBottom2) @StartList:a (!@Endline Inline:b { a << b })+ @Sp @Newline SetextBottom2 { RDoc::Markup::Heading.new(2, a.join) }")
16444
16628
  Rules[:_Heading] = rule_info("Heading", "(SetextHeading | AtxHeading)")
16445
16629
  Rules[:_BlockQuote] = rule_info("BlockQuote", "BlockQuoteRaw:a { RDoc::Markup::BlockQuote.new(*a) }")
16446
- Rules[:_BlockQuoteRaw] = rule_info("BlockQuoteRaw", "@StartList:a (\">\" \" \"? Line:l { a << l } (!\">\" !@BlankLine Line:c { a << c })* (@BlankLine:n { a << n })*)+ { inner_parse a.join }")
16630
+ Rules[:_BlockQuoteRaw] = rule_info("BlockQuoteRaw", "@StartList:a (\">\" \" \"? Line:l { a << l } (!\">\" !@BlankLine !(AtxStart @Spacechar) !Bullet !Enumerator !(&{ github? } Ticks3) Line:c { a << c })* (\">\" @BlankLine:n { a << n })*)+ { inner_parse a.join }")
16447
16631
  Rules[:_NonblankIndentedLine] = rule_info("NonblankIndentedLine", "!@BlankLine IndentedLine")
16448
16632
  Rules[:_VerbatimChunk] = rule_info("VerbatimChunk", "@BlankLine*:a NonblankIndentedLine+:b { a.concat b }")
16449
16633
  Rules[:_Verbatim] = rule_info("Verbatim", "VerbatimChunk+:a { RDoc::Markup::Verbatim.new(*a.flatten) }")
@@ -16575,7 +16759,7 @@ class RDoc::Markdown
16575
16759
  Rules[:_InStyleTags] = rule_info("InStyleTags", "StyleOpen (!StyleClose .)* StyleClose")
16576
16760
  Rules[:_StyleBlock] = rule_info("StyleBlock", "< InStyleTags > @BlankLine* { if css? then RDoc::Markup::Raw.new text end }")
16577
16761
  Rules[:_Inlines] = rule_info("Inlines", "(!@Endline Inline:i { i } | @Endline:c !(&{ github? } Ticks3 /[^`\\n]*$/) &Inline { c })+:chunks @Endline? { chunks }")
16578
- Rules[:_Inline] = rule_info("Inline", "(Str | @Endline | UlOrStarLine | @Space | Strong | Emph | Strike | Image | Link | NoteReference | InlineNote | Code | RawHtml | Entity | EscapedChar | Symbol)")
16762
+ Rules[:_Inline] = rule_info("Inline", "(Str | @Endline | UlOrStarLine | @Space | Strong | Emph | Strike | Image | Link | NoteReference | InlineNote | Code | RawHtml | StrippedComment | Entity | EscapedChar | Symbol)")
16579
16763
  Rules[:_Space] = rule_info("Space", "@Spacechar+ { \" \" }")
16580
16764
  Rules[:_Str] = rule_info("Str", "@StartList:a < @NormalChar+ > { a = text } (StrChunk:c { a << c })* { rdoc_escape(a) }")
16581
16765
  Rules[:_StrChunk] = rule_info("StrChunk", "< (@NormalChar | /_+/ &Alphanumeric)+ > { text }")
@@ -16627,7 +16811,8 @@ class RDoc::Markdown
16627
16811
  Rules[:_Ticks4] = rule_info("Ticks4", "\"````\" !\"`\"")
16628
16812
  Rules[:_Ticks5] = rule_info("Ticks5", "\"`````\" !\"`\"")
16629
16813
  Rules[:_Code] = rule_info("Code", "(Ticks1 < ((!\"`\" Nonspacechar)+ | !Ticks1 /`+/ | !Ticks1 (@Spacechar | @Newline !@BlankLine))+ > Ticks1 | Ticks2 < ((!\"`\" Nonspacechar)+ | !Ticks2 /`+/ | !Ticks2 (@Spacechar | @Newline !@BlankLine))+ > Ticks2 | Ticks3 < ((!\"`\" Nonspacechar)+ | !Ticks3 /`+/ | !Ticks3 (@Spacechar | @Newline !@BlankLine))+ > Ticks3 | Ticks4 < ((!\"`\" Nonspacechar)+ | !Ticks4 /`+/ | !Ticks4 (@Spacechar | @Newline !@BlankLine))+ > Ticks4 | Ticks5 < ((!\"`\" Nonspacechar)+ | !Ticks5 /`+/ | !Ticks5 (@Spacechar | @Newline !@BlankLine))+ > Ticks5) { code text }")
16630
- Rules[:_RawHtml] = rule_info("RawHtml", "< (HtmlComment | HtmlBlockScript | HtmlTag) > { if html? then text else '' end }")
16814
+ Rules[:_RawHtml] = rule_info("RawHtml", "< (HtmlBlockScript | HtmlTag) > { html? ? text : '' }")
16815
+ Rules[:_StrippedComment] = rule_info("StrippedComment", "HtmlComment { '' }")
16631
16816
  Rules[:_BlankLine] = rule_info("BlankLine", "@Sp @Newline { \"\\n\" }")
16632
16817
  Rules[:_Quoted] = rule_info("Quoted", "(\"\\\"\" (!\"\\\"\" .)* \"\\\"\" | \"'\" (!\"'\" .)* \"'\")")
16633
16818
  Rules[:_HtmlAttribute] = rule_info("HtmlAttribute", "(AlphanumericAscii | \"-\")+ Spnl (\"=\" Spnl (Quoted | (!\">\" Nonspacechar)+))? Spnl")
@@ -16660,16 +16845,16 @@ class RDoc::Markdown
16660
16845
  Rules[:_NoteReference] = rule_info("NoteReference", "&{ notes? } RawNoteReference:ref { note_for ref }")
16661
16846
  Rules[:_RawNoteReference] = rule_info("RawNoteReference", "\"[^\" < (!@Newline !\"]\" .)+ > \"]\" { text }")
16662
16847
  Rules[:_Note] = rule_info("Note", "&{ notes? } @NonindentSpace RawNoteReference:ref \":\" @Sp @StartList:a RawNoteBlock:i { a.concat i } (&Indent RawNoteBlock:i { a.concat i })* { @footnotes[ref] = paragraph a nil }")
16663
- Rules[:_InlineNote] = rule_info("InlineNote", "&{ notes? } \"^[\" @StartList:a (!\"]\" Inline:l { a << l })+ \"]\" { ref = [:inline, @note_order.length] @footnotes[ref] = paragraph a note_for ref }")
16848
+ Rules[:_InlineNote] = rule_info("InlineNote", "&{ notes? } \"^[\" @StartList:a (!\"]\" Inline:l { a << l })+ \"]\" { if @note_order ref = [:inline, @note_order.length] @footnotes[ref] = paragraph a note_for ref end }")
16664
16849
  Rules[:_Notes] = rule_info("Notes", "(Note | SkipBlock)*")
16665
16850
  Rules[:_RawNoteBlock] = rule_info("RawNoteBlock", "@StartList:a (!@BlankLine !RawNoteReference OptionallyIndentedLine:l { a << l })+ < @BlankLine* > { a << text } { a }")
16666
- Rules[:_CodeFence] = rule_info("CodeFence", "&{ github? } Ticks3 (@Sp StrChunk:format)? Spnl < ((!\"`\" Nonspacechar)+ | !Ticks3 /`+/ | Spacechar | @Newline)+ > Ticks3 @Sp @Newline* { verbatim = RDoc::Markup::Verbatim.new text verbatim.format = format.intern if format.instance_of?(String) verbatim }")
16851
+ Rules[:_CodeFence] = rule_info("CodeFence", "&{ github? } Ticks3 (@Sp StrChunk:format)? @Sp @Newline? < ((!\"`\" Nonspacechar)+ | !Ticks3 /`+/ | Spacechar | @Newline)+ > Ticks3 @Sp @Newline* { verbatim = RDoc::Markup::Verbatim.new text verbatim.format = format.intern if format.instance_of?(String) verbatim }")
16667
16852
  Rules[:_Table] = rule_info("Table", "&{ github? } TableHead:header TableLine:line TableRow+:body { table = RDoc::Markup::Table.new(header, line, body) parse_table_cells(table) }")
16668
16853
  Rules[:_TableHead] = rule_info("TableHead", "TableItem2+:items \"|\"? @Newline { items }")
16669
- Rules[:_TableRow] = rule_info("TableRow", "((TableItem:item1 TableItem2*:items { [item1, *items] }):row | TableItem2+:row) \"|\"? @Newline { row }")
16854
+ Rules[:_TableRow] = rule_info("TableRow", "((TableItem:item1 TableItem2+:items { [item1, *items] }):row | TableItem2+:row) \"|\"? @Newline { row }")
16670
16855
  Rules[:_TableItem2] = rule_info("TableItem2", "\"|\" TableItem")
16671
16856
  Rules[:_TableItem] = rule_info("TableItem", "< /(?:\\\\.|[^|\\n])+/ > { text.strip.gsub(/\\\\([|])/, '\\1') }")
16672
- Rules[:_TableLine] = rule_info("TableLine", "((TableAlign:align1 TableAlign2*:aligns {[align1, *aligns] }):line | TableAlign2+:line) \"|\"? @Newline { line }")
16857
+ Rules[:_TableLine] = rule_info("TableLine", "((TableAlign:align1 TableAlign2+:aligns {[align1, *aligns] }):line | TableAlign2+:line) \"|\"? @Newline { line }")
16673
16858
  Rules[:_TableAlign2] = rule_info("TableAlign2", "\"|\" @Sp TableAlign")
16674
16859
  Rules[:_TableAlign] = rule_info("TableAlign", "< /:?-+:?/ > @Sp { text.start_with?(\":\") ? (text.end_with?(\":\") ? :center : :left) : (text.end_with?(\":\") ? :right : nil) }")
16675
16860
  Rules[:_DefinitionList] = rule_info("DefinitionList", "&{ definition_lists? } DefinitionListItem+:list { RDoc::Markup::List.new :NOTE, *list.flatten }")