rdoc 7.2.0 → 8.1.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 (150) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +4 -7
  3. data/LICENSE.rdoc +4 -0
  4. data/README.md +43 -2
  5. data/RI.md +75 -75
  6. data/doc/markup_reference/markdown.md +104 -3
  7. data/exe/rdoc +2 -2
  8. data/lib/rdoc/code_object/alias.rb +70 -74
  9. data/lib/rdoc/code_object/any_method.rb +305 -298
  10. data/lib/rdoc/code_object/attr.rb +150 -143
  11. data/lib/rdoc/code_object/class_module.rb +801 -765
  12. data/lib/rdoc/code_object/constant.rb +178 -150
  13. data/lib/rdoc/code_object/context/section.rb +133 -160
  14. data/lib/rdoc/code_object/context.rb +925 -952
  15. data/lib/rdoc/code_object/extend.rb +7 -5
  16. data/lib/rdoc/code_object/include.rb +7 -5
  17. data/lib/rdoc/code_object/method_attr.rb +325 -324
  18. data/lib/rdoc/code_object/mixin.rb +97 -95
  19. data/lib/rdoc/code_object/normal_class.rb +77 -78
  20. data/lib/rdoc/code_object/normal_module.rb +61 -59
  21. data/lib/rdoc/code_object/require.rb +23 -39
  22. data/lib/rdoc/code_object/single_class.rb +21 -19
  23. data/lib/rdoc/code_object/top_level.rb +212 -213
  24. data/lib/rdoc/code_object.rb +305 -305
  25. data/lib/rdoc/comment.rb +274 -337
  26. data/lib/rdoc/cross_reference.rb +194 -212
  27. data/lib/rdoc/encoding.rb +105 -103
  28. data/lib/rdoc/erb_partial.rb +13 -11
  29. data/lib/rdoc/erbio.rb +29 -27
  30. data/lib/rdoc/generator/aliki.rb +165 -140
  31. data/lib/rdoc/generator/darkfish.rb +647 -631
  32. data/lib/rdoc/generator/json_index.rb +233 -229
  33. data/lib/rdoc/generator/markup.rb +165 -122
  34. data/lib/rdoc/generator/pot/message_extractor.rb +57 -51
  35. data/lib/rdoc/generator/pot/po.rb +52 -51
  36. data/lib/rdoc/generator/pot/po_entry.rb +138 -132
  37. data/lib/rdoc/generator/pot.rb +85 -81
  38. data/lib/rdoc/generator/ri.rb +23 -19
  39. data/lib/rdoc/generator/template/aliki/DESIGN.md +538 -0
  40. data/lib/rdoc/generator/template/aliki/_aside_toc.rhtml +1 -1
  41. data/lib/rdoc/generator/template/aliki/_footer.rhtml +1 -1
  42. data/lib/rdoc/generator/template/aliki/_head.rhtml +11 -11
  43. data/lib/rdoc/generator/template/aliki/_header.rhtml +29 -44
  44. data/lib/rdoc/generator/template/aliki/_sidebar_extends.rhtml +8 -6
  45. data/lib/rdoc/generator/template/aliki/_sidebar_includes.rhtml +8 -6
  46. data/lib/rdoc/generator/template/aliki/_sidebar_installed.rhtml +1 -1
  47. data/lib/rdoc/generator/template/aliki/_sidebar_pages.rhtml +2 -2
  48. data/lib/rdoc/generator/template/aliki/_sidebar_search.rhtml +4 -4
  49. data/lib/rdoc/generator/template/aliki/_sidebar_sections.rhtml +1 -1
  50. data/lib/rdoc/generator/template/aliki/_sidebar_toggle.rhtml +1 -1
  51. data/lib/rdoc/generator/template/aliki/class.rhtml +56 -46
  52. data/lib/rdoc/generator/template/aliki/css/rdoc.css +538 -283
  53. data/lib/rdoc/generator/template/aliki/index.rhtml +1 -1
  54. data/lib/rdoc/generator/template/aliki/js/aliki.js +80 -102
  55. data/lib/rdoc/generator/template/aliki/page.rhtml +1 -1
  56. data/lib/rdoc/generator/template/aliki/servlet_not_found.rhtml +1 -1
  57. data/lib/rdoc/generator/template/aliki/servlet_root.rhtml +2 -2
  58. data/lib/rdoc/generator/template/darkfish/_footer.rhtml +1 -1
  59. data/lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml +8 -6
  60. data/lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml +8 -6
  61. data/lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml +1 -1
  62. data/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +1 -1
  63. data/lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml +1 -1
  64. data/lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml +5 -5
  65. data/lib/rdoc/generator/template/darkfish/class.rhtml +18 -21
  66. data/lib/rdoc/generator/template/darkfish/css/rdoc.css +0 -1
  67. data/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +3 -3
  68. data/lib/rdoc/generator.rb +48 -46
  69. data/lib/rdoc/i18n/locale.rb +99 -95
  70. data/lib/rdoc/i18n/text.rb +109 -105
  71. data/lib/rdoc/i18n.rb +7 -5
  72. data/lib/rdoc/markdown/byte_runtime.rb +80 -0
  73. data/lib/rdoc/markdown.kpeg +30 -21
  74. data/lib/rdoc/markdown.rb +329 -151
  75. data/lib/rdoc/markup/block_quote.rb +12 -8
  76. data/lib/rdoc/markup/document.rb +127 -123
  77. data/lib/rdoc/markup/formatter.rb +215 -221
  78. data/lib/rdoc/markup/heading.rb +1 -4
  79. data/lib/rdoc/markup/include.rb +33 -29
  80. data/lib/rdoc/markup/indented_paragraph.rb +37 -33
  81. data/lib/rdoc/markup/inline_parser.rb +281 -277
  82. data/lib/rdoc/markup/list.rb +80 -88
  83. data/lib/rdoc/markup/list_item.rb +73 -85
  84. data/lib/rdoc/markup/paragraph.rb +23 -19
  85. data/lib/rdoc/markup/parser.rb +501 -497
  86. data/lib/rdoc/markup/pre_process.rb +284 -305
  87. data/lib/rdoc/markup/raw.rb +2 -2
  88. data/lib/rdoc/markup/rule.rb +16 -12
  89. data/lib/rdoc/markup/to_ansi.rb +143 -139
  90. data/lib/rdoc/markup/to_bs.rb +72 -68
  91. data/lib/rdoc/markup/to_html.rb +600 -493
  92. data/lib/rdoc/markup/to_html_crossref.rb +221 -191
  93. data/lib/rdoc/markup/to_html_snippet.rb +232 -227
  94. data/lib/rdoc/markup/to_joined_paragraph.rb +40 -41
  95. data/lib/rdoc/markup/to_label.rb +63 -59
  96. data/lib/rdoc/markup/to_markdown.rb +212 -208
  97. data/lib/rdoc/markup/to_rdoc.rb +336 -332
  98. data/lib/rdoc/markup/to_table_of_contents.rb +66 -62
  99. data/lib/rdoc/markup/to_test.rb +60 -56
  100. data/lib/rdoc/markup/to_tt_only.rb +83 -86
  101. data/lib/rdoc/markup/verbatim.rb +62 -58
  102. data/lib/rdoc/markup.rb +198 -196
  103. data/lib/rdoc/options.rb +1063 -1076
  104. data/lib/rdoc/parser/c.rb +1039 -1036
  105. data/lib/rdoc/parser/changelog.rb +319 -315
  106. data/lib/rdoc/parser/markdown.rb +17 -13
  107. data/lib/rdoc/parser/rbs.rb +279 -0
  108. data/lib/rdoc/parser/rd.rb +17 -13
  109. data/lib/rdoc/parser/ruby.rb +1231 -2222
  110. data/lib/rdoc/parser/ruby_colorizer.rb +303 -0
  111. data/lib/rdoc/parser/simple.rb +31 -27
  112. data/lib/rdoc/parser/text.rb +12 -8
  113. data/lib/rdoc/parser.rb +230 -221
  114. data/lib/rdoc/rbs_helper.rb +186 -0
  115. data/lib/rdoc/rd/inline.rb +57 -53
  116. data/lib/rdoc/rd.rb +90 -88
  117. data/lib/rdoc/rdoc.rb +547 -366
  118. data/lib/rdoc/ri/driver.rb +1141 -1130
  119. data/lib/rdoc/ri/formatter.rb +7 -3
  120. data/lib/rdoc/ri/paths.rb +140 -136
  121. data/lib/rdoc/ri/servlet.rb +456 -0
  122. data/lib/rdoc/ri/store.rb +4 -2
  123. data/lib/rdoc/ri/task.rb +55 -51
  124. data/lib/rdoc/ri.rb +14 -11
  125. data/lib/rdoc/rubygems_hook.rb +194 -192
  126. data/lib/rdoc/server.rb +462 -0
  127. data/lib/rdoc/stats/normal.rb +46 -42
  128. data/lib/rdoc/stats/quiet.rb +39 -35
  129. data/lib/rdoc/stats/verbose.rb +35 -31
  130. data/lib/rdoc/stats.rb +363 -338
  131. data/lib/rdoc/store.rb +919 -725
  132. data/lib/rdoc/task.rb +260 -255
  133. data/lib/rdoc/text.rb +130 -245
  134. data/lib/rdoc/token_stream.rb +101 -115
  135. data/lib/rdoc/tom_doc.rb +203 -201
  136. data/lib/rdoc/version.rb +1 -1
  137. data/lib/rdoc.rb +35 -7
  138. data/lib/rubygems_plugin.rb +2 -11
  139. data/rdoc-logo.svg +43 -0
  140. data/rdoc.gemspec +6 -4
  141. metadata +36 -20
  142. data/lib/rdoc/code_object/anon_class.rb +0 -10
  143. data/lib/rdoc/code_object/ghost_method.rb +0 -6
  144. data/lib/rdoc/code_object/meta_method.rb +0 -6
  145. data/lib/rdoc/markdown/literals.kpeg +0 -21
  146. data/lib/rdoc/markdown/literals.rb +0 -454
  147. data/lib/rdoc/parser/prism_ruby.rb +0 -1112
  148. data/lib/rdoc/parser/ripper_state_lex.rb +0 -302
  149. data/lib/rdoc/parser/ruby_tools.rb +0 -163
  150. data/lib/rdoc/servlet.rb +0 -452
@@ -191,7 +191,9 @@
191
191
  require_relative 'markup/to_joined_paragraph'
192
192
  require_relative 'markdown/entities'
193
193
 
194
- require_relative 'markdown/literals'
194
+ require_relative 'markdown/byte_runtime'
195
+
196
+ prepend ByteRuntime
195
197
 
196
198
  ##
197
199
  # Supported extensions
@@ -403,6 +405,8 @@
403
405
  # the note order list for proper display at the end of the document.
404
406
 
405
407
  def note_for ref
408
+ return unless @note_order
409
+
406
410
  @note_order << ref
407
411
 
408
412
  label = @note_order.length
@@ -446,8 +450,12 @@
446
450
  if notes? then
447
451
  @footnotes = {}
448
452
 
449
- setup_parser markdown, @debug
450
- peg_parse 'Notes'
453
+ # A note definition must contain "[^", so documents without one
454
+ # have nothing for the collecting pass to find
455
+ if markdown.include? '[^' then
456
+ setup_parser markdown, @debug
457
+ peg_parse 'Notes'
458
+ end
451
459
 
452
460
  # using note_order on the first pass would be a bug
453
461
  @note_order = []
@@ -561,7 +569,7 @@
561
569
 
562
570
  root = Doc
563
571
 
564
- Doc = BOM? Block*:a { RDoc::Markup::Document.new(*a.compact) }
572
+ Doc = Block*:a { RDoc::Markup::Document.new(*a.compact) }
565
573
 
566
574
  Block = @BlankLine*
567
575
  ( BlockQuote
@@ -617,8 +625,8 @@ BlockQuote = BlockQuoteRaw:a
617
625
 
618
626
  BlockQuoteRaw = @StartList:a
619
627
  (( ">" " "? Line:l { a << l } )
620
- ( !">" !@BlankLine Line:c { a << c } )*
621
- ( @BlankLine:n { a << n } )*
628
+ ( !">" !@BlankLine !(AtxStart @Spacechar) !Bullet !Enumerator !( &{ github? } Ticks3 ) Line:c { a << c } )*
629
+ ( ">" @BlankLine:n { a << n } )*
622
630
  )+
623
631
  { inner_parse a.join }
624
632
 
@@ -865,7 +873,7 @@ HtmlBlockInTags = HtmlAnchor
865
873
  | HtmlBlockScript
866
874
  | HtmlBlockHead
867
875
 
868
- HtmlBlock = < ( HtmlBlockInTags | HtmlComment | HtmlBlockSelfClosing | HtmlUnclosed) >
876
+ HtmlBlock = &"<" < ( HtmlBlockInTags | HtmlComment | HtmlBlockSelfClosing | HtmlUnclosed) >
869
877
  @BlankLine+
870
878
  { if html? then
871
879
  RDoc::Markup::Raw.new text
@@ -975,6 +983,7 @@ Inline = Str
975
983
  | InlineNote
976
984
  | Code
977
985
  | RawHtml
986
+ | StrippedComment
978
987
  | Entity
979
988
  | EscapedChar
980
989
  | Symbol
@@ -1152,8 +1161,8 @@ Code = ( Ticks1 < (
1152
1161
  )
1153
1162
  { code text }
1154
1163
 
1155
- RawHtml = < (HtmlComment | HtmlBlockScript | HtmlTag) >
1156
- { if html? then text else '' end }
1164
+ RawHtml = < HtmlBlockScript | HtmlTag > { html? ? text : '' }
1165
+ StrippedComment = HtmlComment { '' }
1157
1166
 
1158
1167
  BlankLine = @Sp @Newline { "\n" }
1159
1168
 
@@ -1169,12 +1178,10 @@ SpecialChar = /[~*_`&\[\]()<!#\\'"]/ | @ExtendedSpecialChar
1169
1178
  NormalChar = !( @SpecialChar | @Spacechar | @Newline ) .
1170
1179
  Digit = [0-9]
1171
1180
 
1172
- %literals = RDoc::Markdown::Literals
1173
- Alphanumeric = %literals.Alphanumeric
1174
- AlphanumericAscii = %literals.AlphanumericAscii
1175
- BOM = %literals.BOM
1176
- Newline = %literals.Newline
1177
- Spacechar = %literals.Spacechar
1181
+ Alphanumeric = /\p{Word}/
1182
+ AlphanumericAscii = /[A-Za-z0-9]/
1183
+ Newline = /\n|\r\n?|\p{Zl}|\p{Zp}/
1184
+ Spacechar = /\t|\p{Zs}/
1178
1185
 
1179
1186
  HexEntity = /&#x/i < /[0-9a-fA-F]+/ > ";"
1180
1187
  { rdoc_escape([text.to_i(16)].pack('U')) }
@@ -1233,10 +1240,12 @@ InlineNote = &{ notes? }
1233
1240
  @StartList:a
1234
1241
  ( !"]" Inline:l { a << l } )+
1235
1242
  "]"
1236
- { ref = [:inline, @note_order.length]
1237
- @footnotes[ref] = paragraph a
1243
+ { if @note_order
1244
+ ref = [:inline, @note_order.length]
1245
+ @footnotes[ref] = paragraph a
1238
1246
 
1239
- note_for ref
1247
+ note_for ref
1248
+ end
1240
1249
  }
1241
1250
 
1242
1251
  Notes = ( Note | SkipBlock )*
@@ -1249,7 +1258,7 @@ RawNoteBlock = @StartList:a
1249
1258
  # Markdown extensions added by RDoc follow
1250
1259
 
1251
1260
  CodeFence = &{ github? }
1252
- Ticks3 (@Sp StrChunk:format)? Spnl < (
1261
+ Ticks3 (@Sp StrChunk:format)? @Sp @Newline? < (
1253
1262
  ( !"`" Nonspacechar )+ |
1254
1263
  !Ticks3 /`+/ |
1255
1264
  Spacechar |
@@ -1270,13 +1279,13 @@ Table = &{ github? }
1270
1279
  TableHead = TableItem2+:items "|"? @Newline
1271
1280
  { items }
1272
1281
 
1273
- TableRow = ( ( TableItem:item1 TableItem2*:items { [item1, *items] } ):row | TableItem2+:row ) "|"? @Newline
1282
+ TableRow = ( ( TableItem:item1 TableItem2+:items { [item1, *items] } ):row | TableItem2+:row ) "|"? @Newline
1274
1283
  { row }
1275
1284
  TableItem2 = "|" TableItem
1276
1285
  TableItem = < /(?:\\.|[^|\n])+/ >
1277
1286
  { text.strip.gsub(/\\([|])/, '\1') }
1278
1287
 
1279
- TableLine = ( ( TableAlign:align1 TableAlign2*:aligns {[align1, *aligns] } ):line | TableAlign2+:line ) "|"? @Newline
1288
+ TableLine = ( ( TableAlign:align1 TableAlign2+:aligns {[align1, *aligns] } ):line | TableAlign2+:line ) "|"? @Newline
1280
1289
  { line }
1281
1290
  TableAlign2 = "|" @Sp TableAlign
1282
1291
  TableAlign = < /:?-+:?/ > @Sp