rdoc 7.1.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.
- checksums.yaml +4 -4
- data/CONTRIBUTING.md +3 -4
- data/LICENSE.rdoc +4 -0
- data/README.md +43 -2
- data/doc/markup_reference/markdown.md +104 -3
- data/lib/rdoc/code_object/alias.rb +2 -8
- data/lib/rdoc/code_object/any_method.rb +11 -6
- data/lib/rdoc/code_object/attr.rb +12 -6
- data/lib/rdoc/code_object/class_module.rb +62 -32
- data/lib/rdoc/code_object/constant.rb +29 -3
- data/lib/rdoc/code_object/context/section.rb +30 -43
- data/lib/rdoc/code_object/context.rb +53 -37
- data/lib/rdoc/code_object/method_attr.rb +9 -15
- data/lib/rdoc/code_object/mixin.rb +3 -0
- data/lib/rdoc/code_object/top_level.rb +11 -3
- data/lib/rdoc/code_object.rb +2 -4
- data/lib/rdoc/comment.rb +1 -66
- data/lib/rdoc/cross_reference.rb +8 -30
- data/lib/rdoc/encoding.rb +3 -3
- data/lib/rdoc/generator/aliki.rb +17 -0
- data/lib/rdoc/generator/darkfish.rb +12 -6
- data/lib/rdoc/generator/json_index.rb +2 -2
- data/lib/rdoc/generator/markup.rb +56 -31
- data/lib/rdoc/generator/template/aliki/DESIGN.md +536 -0
- data/lib/rdoc/generator/template/aliki/_aside_toc.rhtml +1 -1
- data/lib/rdoc/generator/template/aliki/_head.rhtml +6 -1
- data/lib/rdoc/generator/template/aliki/_sidebar_extends.rhtml +8 -6
- data/lib/rdoc/generator/template/aliki/_sidebar_includes.rhtml +8 -6
- data/lib/rdoc/generator/template/aliki/_sidebar_installed.rhtml +1 -1
- data/lib/rdoc/generator/template/aliki/_sidebar_pages.rhtml +2 -2
- data/lib/rdoc/generator/template/aliki/_sidebar_sections.rhtml +1 -1
- data/lib/rdoc/generator/template/aliki/_sidebar_toggle.rhtml +1 -1
- data/lib/rdoc/generator/template/aliki/class.rhtml +61 -51
- data/lib/rdoc/generator/template/aliki/css/rdoc.css +365 -147
- data/lib/rdoc/generator/template/aliki/index.rhtml +1 -1
- data/lib/rdoc/generator/template/aliki/js/aliki.js +28 -20
- data/lib/rdoc/generator/template/aliki/js/bash_highlighter.js +167 -0
- data/lib/rdoc/generator/template/aliki/js/search_controller.js +1 -1
- data/lib/rdoc/generator/template/aliki/page.rhtml +1 -1
- data/lib/rdoc/generator/template/aliki/servlet_not_found.rhtml +1 -1
- data/lib/rdoc/generator/template/aliki/servlet_root.rhtml +2 -2
- data/lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml +8 -6
- data/lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml +8 -6
- data/lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml +1 -1
- data/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +1 -1
- data/lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml +1 -1
- data/lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml +5 -5
- data/lib/rdoc/generator/template/darkfish/class.rhtml +18 -21
- data/lib/rdoc/generator/template/darkfish/css/rdoc.css +0 -1
- data/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +3 -3
- data/lib/rdoc/i18n/text.rb +3 -3
- data/lib/rdoc/markdown.kpeg +36 -17
- data/lib/rdoc/markdown.rb +324 -125
- data/lib/rdoc/markup/document.rb +2 -2
- data/lib/rdoc/markup/formatter.rb +128 -115
- data/lib/rdoc/markup/heading.rb +3 -6
- data/lib/rdoc/markup/indented_paragraph.rb +1 -1
- data/lib/rdoc/markup/inline_parser.rb +312 -0
- data/lib/rdoc/markup/list.rb +2 -2
- data/lib/rdoc/markup/list_item.rb +2 -2
- data/lib/rdoc/markup/parser.rb +1 -1
- data/lib/rdoc/markup/pre_process.rb +0 -25
- data/lib/rdoc/markup/to_ansi.rb +52 -5
- data/lib/rdoc/markup/to_bs.rb +23 -43
- data/lib/rdoc/markup/to_html.rb +279 -226
- data/lib/rdoc/markup/to_html_crossref.rb +122 -136
- data/lib/rdoc/markup/to_html_snippet.rb +65 -65
- data/lib/rdoc/markup/to_joined_paragraph.rb +0 -5
- data/lib/rdoc/markup/to_label.rb +22 -23
- data/lib/rdoc/markup/to_markdown.rb +62 -38
- data/lib/rdoc/markup/to_rdoc.rb +88 -28
- data/lib/rdoc/markup/to_table_of_contents.rb +1 -1
- data/lib/rdoc/markup/to_test.rb +9 -1
- data/lib/rdoc/markup/to_tt_only.rb +10 -23
- data/lib/rdoc/markup/verbatim.rb +1 -1
- data/lib/rdoc/markup.rb +8 -30
- data/lib/rdoc/options.rb +36 -51
- data/lib/rdoc/parser/c.rb +7 -6
- data/lib/rdoc/parser/changelog.rb +21 -0
- data/lib/rdoc/parser/rbs.rb +275 -0
- data/lib/rdoc/parser/ruby.rb +955 -2067
- data/lib/rdoc/parser/ruby_colorizer.rb +253 -0
- data/lib/rdoc/parser.rb +3 -2
- data/lib/rdoc/rbs_helper.rb +186 -0
- data/lib/rdoc/rdoc.rb +196 -24
- data/lib/rdoc/ri/driver.rb +8 -2
- data/lib/rdoc/ri/paths.rb +1 -1
- data/lib/rdoc/{servlet.rb → ri/servlet.rb} +5 -5
- data/lib/rdoc/ri.rb +4 -3
- data/lib/rdoc/rubygems_hook.rb +11 -11
- data/lib/rdoc/server.rb +460 -0
- data/lib/rdoc/stats.rb +147 -124
- data/lib/rdoc/store.rb +212 -4
- data/lib/rdoc/task.rb +16 -15
- data/lib/rdoc/text.rb +24 -117
- data/lib/rdoc/token_stream.rb +11 -33
- data/lib/rdoc/version.rb +1 -1
- data/lib/rdoc.rb +35 -7
- data/lib/rubygems_plugin.rb +2 -11
- data/rdoc-logo.svg +43 -0
- data/rdoc.gemspec +6 -4
- metadata +37 -23
- data/lib/rdoc/code_object/anon_class.rb +0 -10
- data/lib/rdoc/code_object/ghost_method.rb +0 -6
- data/lib/rdoc/code_object/meta_method.rb +0 -6
- data/lib/rdoc/markup/attr_changer.rb +0 -22
- data/lib/rdoc/markup/attr_span.rb +0 -35
- data/lib/rdoc/markup/attribute_manager.rb +0 -432
- data/lib/rdoc/markup/attributes.rb +0 -70
- data/lib/rdoc/markup/regexp_handling.rb +0 -40
- data/lib/rdoc/parser/prism_ruby.rb +0 -1100
- data/lib/rdoc/parser/ripper_state_lex.rb +0 -302
- data/lib/rdoc/parser/ruby_tools.rb +0 -163
data/lib/rdoc/markdown.kpeg
CHANGED
|
@@ -303,6 +303,20 @@
|
|
|
303
303
|
end
|
|
304
304
|
end
|
|
305
305
|
|
|
306
|
+
# Escape character that has special meaning in RDoc format.
|
|
307
|
+
# To allow rdoc-styled link used in markdown format for now, bracket and brace are not escaped.
|
|
308
|
+
|
|
309
|
+
def rdoc_escape(text)
|
|
310
|
+
text.gsub(/[*+<\\_]/) {|s| "\\#{s}" }
|
|
311
|
+
end
|
|
312
|
+
|
|
313
|
+
# Escape link url that contains brackets.
|
|
314
|
+
# Brackets needs escape because link url will be surrounded by `[]` in RDoc format.
|
|
315
|
+
|
|
316
|
+
def rdoc_link_url_escape(text)
|
|
317
|
+
text.gsub(/[\[\]\\]/) {|s| "\\#{s}" }
|
|
318
|
+
end
|
|
319
|
+
|
|
306
320
|
##
|
|
307
321
|
# :category: Extensions
|
|
308
322
|
#
|
|
@@ -389,6 +403,8 @@
|
|
|
389
403
|
# the note order list for proper display at the end of the document.
|
|
390
404
|
|
|
391
405
|
def note_for ref
|
|
406
|
+
return unless @note_order
|
|
407
|
+
|
|
392
408
|
@note_order << ref
|
|
393
409
|
|
|
394
410
|
label = @note_order.length
|
|
@@ -603,8 +619,8 @@ BlockQuote = BlockQuoteRaw:a
|
|
|
603
619
|
|
|
604
620
|
BlockQuoteRaw = @StartList:a
|
|
605
621
|
(( ">" " "? Line:l { a << l } )
|
|
606
|
-
( !">" !@BlankLine Line:c { a << c } )*
|
|
607
|
-
( @BlankLine:n { a << n } )*
|
|
622
|
+
( !">" !@BlankLine !(AtxStart @Spacechar) !Bullet !Enumerator !( &{ github? } Ticks3 ) Line:c { a << c } )*
|
|
623
|
+
( ">" @BlankLine:n { a << n } )*
|
|
608
624
|
)+
|
|
609
625
|
{ inner_parse a.join }
|
|
610
626
|
|
|
@@ -961,6 +977,7 @@ Inline = Str
|
|
|
961
977
|
| InlineNote
|
|
962
978
|
| Code
|
|
963
979
|
| RawHtml
|
|
980
|
+
| StrippedComment
|
|
964
981
|
| Entity
|
|
965
982
|
| EscapedChar
|
|
966
983
|
| Symbol
|
|
@@ -969,11 +986,11 @@ Space = @Spacechar+ { " " }
|
|
|
969
986
|
|
|
970
987
|
Str = @StartList:a
|
|
971
988
|
< @NormalChar+ > { a = text }
|
|
972
|
-
( StrChunk:c { a << c } )* { a }
|
|
989
|
+
( StrChunk:c { a << c } )* { rdoc_escape(a) }
|
|
973
990
|
|
|
974
991
|
StrChunk = < (@NormalChar | /_+/ &Alphanumeric)+ > { text }
|
|
975
992
|
|
|
976
|
-
EscapedChar = "\\" !@Newline < /[:\\`|*_{}\[\]()#+.!><-]/ > { text }
|
|
993
|
+
EscapedChar = "\\" !@Newline < /[:\\`|*_{}\[\]()#+.!><-]/ > { rdoc_escape(text) }
|
|
977
994
|
|
|
978
995
|
Entity = ( HexEntity | DecEntity | CharEntity ):a { a }
|
|
979
996
|
|
|
@@ -988,7 +1005,7 @@ TerminalEndline = @Sp @Newline @Eof
|
|
|
988
1005
|
LineBreak = " " @NormalEndline { RDoc::Markup::HardBreak.new }
|
|
989
1006
|
|
|
990
1007
|
Symbol = < @SpecialChar >
|
|
991
|
-
{ text }
|
|
1008
|
+
{ rdoc_escape(text) }
|
|
992
1009
|
|
|
993
1010
|
# This keeps the parser from getting bogged down on long strings of '*' or '_',
|
|
994
1011
|
# or strings of '*' or '_' with space on each side:
|
|
@@ -1053,7 +1070,7 @@ ReferenceLinkSingle = Label:content < (Spnl "[]")? >
|
|
|
1053
1070
|
{ link_to content, content, text }
|
|
1054
1071
|
|
|
1055
1072
|
ExplicitLink = ExplicitLinkWithLabel:a
|
|
1056
|
-
{ "{#{a[:label]}}[#{a[:link]}]" }
|
|
1073
|
+
{ "{#{a[:label]}}[#{rdoc_link_url_escape(a[:link])}]" }
|
|
1057
1074
|
|
|
1058
1075
|
ExplicitLinkWithLabel = Label:label "(" @Sp Source:link Spnl Title @Sp ")"
|
|
1059
1076
|
{ { label: label, link: link } }
|
|
@@ -1138,8 +1155,8 @@ Code = ( Ticks1 < (
|
|
|
1138
1155
|
)
|
|
1139
1156
|
{ code text }
|
|
1140
1157
|
|
|
1141
|
-
RawHtml = <
|
|
1142
|
-
|
|
1158
|
+
RawHtml = < HtmlBlockScript | HtmlTag > { html? ? text : '' }
|
|
1159
|
+
StrippedComment = HtmlComment { '' }
|
|
1143
1160
|
|
|
1144
1161
|
BlankLine = @Sp @Newline { "\n" }
|
|
1145
1162
|
|
|
@@ -1163,12 +1180,12 @@ Newline = %literals.Newline
|
|
|
1163
1180
|
Spacechar = %literals.Spacechar
|
|
1164
1181
|
|
|
1165
1182
|
HexEntity = /&#x/i < /[0-9a-fA-F]+/ > ";"
|
|
1166
|
-
{ [text.to_i(16)].pack
|
|
1183
|
+
{ rdoc_escape([text.to_i(16)].pack('U')) }
|
|
1167
1184
|
DecEntity = "&#" < /[0-9]+/ > ";"
|
|
1168
|
-
{ [text.to_i].pack
|
|
1185
|
+
{ rdoc_escape([text.to_i].pack('U')) }
|
|
1169
1186
|
CharEntity = "&" </[A-Za-z0-9]+/ > ";"
|
|
1170
1187
|
{ if entity = HTML_ENTITIES[text] then
|
|
1171
|
-
entity.pack
|
|
1188
|
+
rdoc_escape(entity.pack('U*'))
|
|
1172
1189
|
else
|
|
1173
1190
|
"&#{text};"
|
|
1174
1191
|
end
|
|
@@ -1219,10 +1236,12 @@ InlineNote = &{ notes? }
|
|
|
1219
1236
|
@StartList:a
|
|
1220
1237
|
( !"]" Inline:l { a << l } )+
|
|
1221
1238
|
"]"
|
|
1222
|
-
{
|
|
1223
|
-
|
|
1239
|
+
{ if @note_order
|
|
1240
|
+
ref = [:inline, @note_order.length]
|
|
1241
|
+
@footnotes[ref] = paragraph a
|
|
1224
1242
|
|
|
1225
|
-
|
|
1243
|
+
note_for ref
|
|
1244
|
+
end
|
|
1226
1245
|
}
|
|
1227
1246
|
|
|
1228
1247
|
Notes = ( Note | SkipBlock )*
|
|
@@ -1235,7 +1254,7 @@ RawNoteBlock = @StartList:a
|
|
|
1235
1254
|
# Markdown extensions added by RDoc follow
|
|
1236
1255
|
|
|
1237
1256
|
CodeFence = &{ github? }
|
|
1238
|
-
Ticks3 (@Sp StrChunk:format)?
|
|
1257
|
+
Ticks3 (@Sp StrChunk:format)? @Sp @Newline? < (
|
|
1239
1258
|
( !"`" Nonspacechar )+ |
|
|
1240
1259
|
!Ticks3 /`+/ |
|
|
1241
1260
|
Spacechar |
|
|
@@ -1256,13 +1275,13 @@ Table = &{ github? }
|
|
|
1256
1275
|
TableHead = TableItem2+:items "|"? @Newline
|
|
1257
1276
|
{ items }
|
|
1258
1277
|
|
|
1259
|
-
TableRow = ( ( TableItem:item1 TableItem2
|
|
1278
|
+
TableRow = ( ( TableItem:item1 TableItem2+:items { [item1, *items] } ):row | TableItem2+:row ) "|"? @Newline
|
|
1260
1279
|
{ row }
|
|
1261
1280
|
TableItem2 = "|" TableItem
|
|
1262
1281
|
TableItem = < /(?:\\.|[^|\n])+/ >
|
|
1263
1282
|
{ text.strip.gsub(/\\([|])/, '\1') }
|
|
1264
1283
|
|
|
1265
|
-
TableLine = ( ( TableAlign:align1 TableAlign2
|
|
1284
|
+
TableLine = ( ( TableAlign:align1 TableAlign2+:aligns {[align1, *aligns] } ):line | TableAlign2+:line ) "|"? @Newline
|
|
1266
1285
|
{ line }
|
|
1267
1286
|
TableAlign2 = "|" @Sp TableAlign
|
|
1268
1287
|
TableAlign = < /:?-+:?/ > @Sp
|