rdoc 6.3.4.1 → 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 +195 -0
- data/History.rdoc +65 -63
- data/LEGAL.rdoc +7 -1
- data/LICENSE.rdoc +6 -0
- data/README.md +236 -0
- data/RI.md +842 -0
- data/TODO.rdoc +8 -7
- data/doc/markup_reference/markdown.md +659 -0
- data/doc/markup_reference/rdoc.rdoc +1169 -0
- data/exe/rdoc +0 -1
- data/lib/rdoc/{alias.rb → code_object/alias.rb} +4 -18
- data/lib/rdoc/{any_method.rb → code_object/any_method.rb} +50 -24
- data/lib/rdoc/{attr.rb → code_object/attr.rb} +16 -14
- data/lib/rdoc/{class_module.rb → code_object/class_module.rb} +225 -58
- data/lib/rdoc/{constant.rb → code_object/constant.rb} +44 -10
- data/lib/rdoc/code_object/context/section.rb +182 -0
- data/lib/rdoc/{context.rb → code_object/context.rb} +78 -106
- data/lib/rdoc/{extend.rb → code_object/extend.rb} +0 -1
- data/lib/rdoc/{include.rb → code_object/include.rb} +0 -1
- data/lib/rdoc/{method_attr.rb → code_object/method_attr.rb} +46 -48
- data/lib/rdoc/{mixin.rb → code_object/mixin.rb} +6 -4
- data/lib/rdoc/{normal_class.rb → code_object/normal_class.rb} +2 -3
- data/lib/rdoc/{normal_module.rb → code_object/normal_module.rb} +2 -3
- data/lib/rdoc/{require.rb → code_object/require.rb} +1 -2
- data/lib/rdoc/{single_class.rb → code_object/single_class.rb} +5 -1
- data/lib/rdoc/{top_level.rb → code_object/top_level.rb} +60 -63
- data/lib/rdoc/code_object.rb +11 -39
- data/lib/rdoc/code_objects.rb +1 -2
- data/lib/rdoc/comment.rb +202 -99
- data/lib/rdoc/cross_reference.rb +75 -62
- data/lib/rdoc/encoding.rb +8 -24
- data/lib/rdoc/erb_partial.rb +1 -2
- data/lib/rdoc/erbio.rb +3 -8
- data/lib/rdoc/generator/aliki.rb +200 -0
- data/lib/rdoc/generator/darkfish.rb +156 -122
- data/lib/rdoc/generator/json_index.rb +8 -24
- data/lib/rdoc/generator/markup.rb +70 -34
- data/lib/rdoc/generator/pot/message_extractor.rb +7 -7
- data/lib/rdoc/generator/pot/po.rb +1 -1
- data/lib/rdoc/generator/pot/po_entry.rb +8 -8
- data/lib/rdoc/generator/pot.rb +1 -5
- data/lib/rdoc/generator/ri.rb +1 -2
- data/lib/rdoc/generator/template/aliki/DESIGN.md +536 -0
- data/lib/rdoc/generator/template/aliki/_aside_toc.rhtml +8 -0
- data/lib/rdoc/generator/template/aliki/_footer.rhtml +23 -0
- data/lib/rdoc/generator/template/aliki/_head.rhtml +163 -0
- data/lib/rdoc/generator/template/aliki/_header.rhtml +56 -0
- data/lib/rdoc/generator/template/aliki/_icons.rhtml +208 -0
- data/lib/rdoc/generator/template/aliki/_sidebar_ancestors.rhtml +16 -0
- data/lib/rdoc/generator/template/aliki/_sidebar_classes.rhtml +15 -0
- data/lib/rdoc/generator/template/aliki/_sidebar_extends.rhtml +27 -0
- data/lib/rdoc/generator/template/aliki/_sidebar_includes.rhtml +27 -0
- data/lib/rdoc/generator/template/aliki/_sidebar_installed.rhtml +16 -0
- data/lib/rdoc/generator/template/aliki/_sidebar_methods.rhtml +41 -0
- data/lib/rdoc/generator/template/aliki/_sidebar_pages.rhtml +67 -0
- data/lib/rdoc/generator/template/aliki/_sidebar_search.rhtml +15 -0
- data/lib/rdoc/generator/template/aliki/_sidebar_sections.rhtml +21 -0
- data/lib/rdoc/generator/template/aliki/_sidebar_toggle.rhtml +3 -0
- data/lib/rdoc/generator/template/aliki/class.rhtml +230 -0
- data/lib/rdoc/generator/template/aliki/css/rdoc.css +2181 -0
- data/lib/rdoc/generator/template/aliki/index.rhtml +22 -0
- data/lib/rdoc/generator/template/aliki/js/aliki.js +513 -0
- data/lib/rdoc/generator/template/aliki/js/bash_highlighter.js +167 -0
- data/lib/rdoc/generator/template/aliki/js/c_highlighter.js +299 -0
- data/lib/rdoc/generator/template/aliki/js/search_controller.js +129 -0
- data/lib/rdoc/generator/template/aliki/js/search_navigation.js +105 -0
- data/lib/rdoc/generator/template/aliki/js/search_ranker.js +239 -0
- data/lib/rdoc/generator/template/aliki/js/theme-toggle.js +112 -0
- data/lib/rdoc/generator/template/aliki/page.rhtml +18 -0
- data/lib/rdoc/generator/template/aliki/servlet_not_found.rhtml +14 -0
- data/lib/rdoc/generator/template/aliki/servlet_root.rhtml +65 -0
- data/lib/rdoc/generator/template/darkfish/_footer.rhtml +3 -3
- data/lib/rdoc/generator/template/darkfish/_head.rhtml +35 -14
- data/lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml +1 -5
- data/lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml +11 -9
- data/lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml +11 -9
- data/lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml +7 -6
- data/lib/rdoc/generator/template/darkfish/_sidebar_methods.rhtml +20 -11
- data/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +25 -5
- data/lib/rdoc/generator/template/darkfish/_sidebar_parent.rhtml +4 -9
- data/lib/rdoc/generator/template/darkfish/_sidebar_search.rhtml +2 -1
- data/lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml +4 -4
- data/lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml +28 -7
- data/lib/rdoc/generator/template/darkfish/_sidebar_toggle.rhtml +3 -0
- data/lib/rdoc/generator/template/darkfish/class.rhtml +138 -90
- data/lib/rdoc/generator/template/darkfish/css/rdoc.css +420 -358
- data/lib/rdoc/generator/template/darkfish/fonts/SourceCodePro-Bold.ttf +0 -0
- data/lib/rdoc/generator/template/darkfish/fonts/SourceCodePro-Regular.ttf +0 -0
- data/lib/rdoc/generator/template/darkfish/index.rhtml +14 -12
- data/lib/rdoc/generator/template/darkfish/js/darkfish.js +59 -3
- data/lib/rdoc/generator/template/darkfish/js/search.js +15 -5
- data/lib/rdoc/generator/template/darkfish/page.rhtml +7 -6
- data/lib/rdoc/generator/template/darkfish/servlet_not_found.rhtml +12 -9
- data/lib/rdoc/generator/template/darkfish/servlet_root.rhtml +24 -21
- data/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +35 -21
- data/lib/rdoc/generator/template/json_index/js/navigation.js +8 -8
- data/lib/rdoc/generator/template/json_index/js/searcher.js +48 -6
- data/lib/rdoc/generator.rb +6 -5
- data/lib/rdoc/i18n/text.rb +3 -3
- data/lib/rdoc/i18n.rb +1 -1
- data/lib/rdoc/known_classes.rb +5 -4
- data/lib/rdoc/markdown/entities.rb +0 -1
- data/lib/rdoc/markdown/literals.kpeg +0 -2
- data/lib/rdoc/markdown/literals.rb +0 -1
- data/lib/rdoc/markdown.kpeg +140 -62
- data/lib/rdoc/markdown.rb +1015 -873
- data/lib/rdoc/markup/blank_line.rb +25 -24
- data/lib/rdoc/markup/block_quote.rb +1 -2
- data/lib/rdoc/markup/document.rb +10 -11
- data/lib/rdoc/markup/element.rb +21 -0
- data/lib/rdoc/markup/formatter.rb +134 -115
- data/lib/rdoc/markup/hard_break.rb +30 -28
- data/lib/rdoc/markup/heading.rb +163 -72
- data/lib/rdoc/markup/include.rb +3 -4
- data/lib/rdoc/markup/indented_paragraph.rb +4 -5
- data/lib/rdoc/markup/inline_parser.rb +312 -0
- data/lib/rdoc/markup/list.rb +6 -7
- data/lib/rdoc/markup/list_item.rb +6 -7
- data/lib/rdoc/markup/paragraph.rb +2 -3
- data/lib/rdoc/markup/parser.rb +29 -19
- data/lib/rdoc/markup/pre_process.rb +39 -18
- data/lib/rdoc/markup/raw.rb +52 -56
- data/lib/rdoc/markup/rule.rb +2 -3
- data/lib/rdoc/markup/table.rb +49 -32
- data/lib/rdoc/markup/to_ansi.rb +58 -8
- data/lib/rdoc/markup/to_bs.rb +47 -38
- data/lib/rdoc/markup/to_html.rb +343 -105
- data/lib/rdoc/markup/to_html_crossref.rb +143 -58
- data/lib/rdoc/markup/to_html_snippet.rb +78 -76
- data/lib/rdoc/markup/to_joined_paragraph.rb +3 -9
- data/lib/rdoc/markup/to_label.rb +34 -25
- data/lib/rdoc/markup/to_markdown.rb +74 -51
- data/lib/rdoc/markup/to_rdoc.rb +141 -82
- data/lib/rdoc/markup/to_table_of_contents.rb +4 -5
- data/lib/rdoc/markup/to_test.rb +10 -3
- data/lib/rdoc/markup/to_tt_only.rb +17 -31
- data/lib/rdoc/markup/verbatim.rb +5 -6
- data/lib/rdoc/markup.rb +59 -707
- data/lib/rdoc/options.rb +228 -101
- data/lib/rdoc/parser/c.rb +186 -184
- data/lib/rdoc/parser/changelog.rb +57 -13
- data/lib/rdoc/parser/markdown.rb +0 -2
- data/lib/rdoc/parser/rbs.rb +275 -0
- data/lib/rdoc/parser/rd.rb +0 -1
- data/lib/rdoc/parser/ruby.rb +963 -2024
- data/lib/rdoc/parser/ruby_colorizer.rb +253 -0
- data/lib/rdoc/parser/simple.rb +6 -23
- data/lib/rdoc/parser/text.rb +0 -1
- data/lib/rdoc/parser.rb +35 -14
- data/lib/rdoc/rbs_helper.rb +186 -0
- data/lib/rdoc/rd/block_parser.rb +659 -11
- data/lib/rdoc/rd/block_parser.ry +13 -9
- data/lib/rdoc/rd/inline.rb +4 -5
- data/lib/rdoc/rd/inline_parser.rb +646 -2
- data/lib/rdoc/rd.rb +4 -5
- data/lib/rdoc/rdoc.rb +234 -90
- data/lib/rdoc/ri/driver.rb +172 -172
- data/lib/rdoc/ri/paths.rb +3 -3
- data/lib/rdoc/{servlet.rb → ri/servlet.rb} +28 -27
- data/lib/rdoc/ri/store.rb +0 -1
- data/lib/rdoc/ri/task.rb +3 -3
- data/lib/rdoc/ri.rb +5 -5
- data/lib/rdoc/rubygems_hook.rb +106 -25
- data/lib/rdoc/server.rb +460 -0
- data/lib/rdoc/stats/normal.rb +1 -1
- data/lib/rdoc/stats/quiet.rb +1 -2
- data/lib/rdoc/stats/verbose.rb +3 -5
- data/lib/rdoc/stats.rb +158 -136
- data/lib/rdoc/store.rb +267 -48
- data/lib/rdoc/task.rb +54 -28
- data/lib/rdoc/text.rb +60 -120
- data/lib/rdoc/token_stream.rb +30 -45
- data/lib/rdoc/tom_doc.rb +9 -15
- data/lib/rdoc/version.rb +3 -1
- data/lib/rdoc.rb +90 -52
- data/lib/rubygems_plugin.rb +14 -0
- data/man/ri.1 +2 -0
- data/rdoc-logo.svg +43 -0
- data/rdoc.gemspec +25 -200
- metadata +120 -53
- data/CONTRIBUTING.rdoc +0 -220
- data/ExampleMarkdown.md +0 -37
- data/ExampleRDoc.rdoc +0 -208
- data/Gemfile +0 -12
- data/README.rdoc +0 -129
- data/RI.rdoc +0 -57
- data/Rakefile +0 -101
- data/bin/console +0 -7
- data/bin/setup +0 -6
- data/lib/rdoc/anon_class.rb +0 -11
- data/lib/rdoc/context/section.rb +0 -232
- data/lib/rdoc/generator/template/darkfish/.document +0 -0
- data/lib/rdoc/generator/template/darkfish/_sidebar_VCS_info.rhtml +0 -19
- data/lib/rdoc/generator/template/darkfish/_sidebar_in_files.rhtml +0 -9
- data/lib/rdoc/generator/template/json_index/.document +0 -1
- data/lib/rdoc/ghost_method.rb +0 -7
- data/lib/rdoc/markup/attr_changer.rb +0 -23
- data/lib/rdoc/markup/attr_span.rb +0 -36
- data/lib/rdoc/markup/attribute_manager.rb +0 -409
- data/lib/rdoc/markup/attributes.rb +0 -71
- data/lib/rdoc/markup/regexp_handling.rb +0 -41
- data/lib/rdoc/meta_method.rb +0 -7
- data/lib/rdoc/parser/ripper_state_lex.rb +0 -590
- data/lib/rdoc/parser/ruby_tools.rb +0 -167
data/lib/rdoc/markdown.kpeg
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
# RDoc::Markdown as described by the [markdown syntax][syntax].
|
|
10
10
|
#
|
|
11
11
|
# To choose Markdown as your only default format see
|
|
12
|
-
# RDoc::Options@Saved+Options for instructions on setting up a `.
|
|
12
|
+
# RDoc::Options@Saved+Options for instructions on setting up a `.rdoc_options`
|
|
13
13
|
# file to store your project default.
|
|
14
14
|
#
|
|
15
15
|
# ## Usage
|
|
@@ -178,7 +178,7 @@
|
|
|
178
178
|
# [dingus]: http://daringfireball.net/projects/markdown/dingus
|
|
179
179
|
# [GFM]: https://github.github.com/gfm/
|
|
180
180
|
# [pegmarkdown]: https://github.com/jgm/peg-markdown
|
|
181
|
-
# [PHPE]:
|
|
181
|
+
# [PHPE]: https://michelf.ca/projects/php-markdown/extra/#def-list
|
|
182
182
|
# [syntax]: http://daringfireball.net/projects/markdown/syntax
|
|
183
183
|
#--
|
|
184
184
|
# Last updated to jgm/peg-markdown commit 8f8fc22ef0
|
|
@@ -187,11 +187,11 @@
|
|
|
187
187
|
|
|
188
188
|
%% {
|
|
189
189
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
190
|
+
require_relative '../rdoc'
|
|
191
|
+
require_relative 'markup/to_joined_paragraph'
|
|
192
|
+
require_relative 'markdown/entities'
|
|
193
193
|
|
|
194
|
-
|
|
194
|
+
require_relative 'markdown/literals'
|
|
195
195
|
|
|
196
196
|
##
|
|
197
197
|
# Supported extensions
|
|
@@ -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
|
|
@@ -449,7 +465,7 @@
|
|
|
449
465
|
|
|
450
466
|
@note_order.each_with_index do |ref, index|
|
|
451
467
|
label = index + 1
|
|
452
|
-
note = @footnotes[ref]
|
|
468
|
+
note = @footnotes[ref] or raise ParseError, "footnote [^#{ref}] not found"
|
|
453
469
|
|
|
454
470
|
link = "{^#{label}}[rdoc-label:footmark-#{label}:foottext-#{label}] "
|
|
455
471
|
note.parts.unshift link
|
|
@@ -490,10 +506,57 @@
|
|
|
490
506
|
# Wraps `text` in strike markup for rdoc inline formatting
|
|
491
507
|
|
|
492
508
|
def strike text
|
|
493
|
-
|
|
494
|
-
|
|
509
|
+
"<del>#{text}</del>"
|
|
510
|
+
end
|
|
511
|
+
|
|
512
|
+
##
|
|
513
|
+
# Wraps `text` in code markup for rdoc inline formatting
|
|
514
|
+
|
|
515
|
+
def code text
|
|
516
|
+
# trim even spaces
|
|
517
|
+
text = $2 while /\A( +|\t+)(.*)\1\z/ =~ text
|
|
518
|
+
# escape unescaped backslash at the end
|
|
519
|
+
backslash_at_end = "\\" if /(?<!\\)(?:\\\\)*\\\z/.match?(text)
|
|
520
|
+
"<code>#{text}#{backslash_at_end}</code>"
|
|
521
|
+
end
|
|
522
|
+
|
|
523
|
+
##
|
|
524
|
+
# Parses inline markdown in table cells
|
|
525
|
+
|
|
526
|
+
def parse_table_cells(table)
|
|
527
|
+
# Parse header cells
|
|
528
|
+
table.header = table.header.map { |cell| parse_cell_inline(cell) }
|
|
529
|
+
|
|
530
|
+
# Parse body cells
|
|
531
|
+
table.body = table.body.map do |row|
|
|
532
|
+
row.map { |cell| parse_cell_inline(cell) }
|
|
533
|
+
end
|
|
534
|
+
|
|
535
|
+
table
|
|
536
|
+
end
|
|
537
|
+
|
|
538
|
+
##
|
|
539
|
+
# Parses inline markdown in a single table cell
|
|
540
|
+
|
|
541
|
+
def parse_cell_inline(text)
|
|
542
|
+
return text if text.nil? || text.empty?
|
|
543
|
+
|
|
544
|
+
# Create a new parser instance for the cell
|
|
545
|
+
cell_parser = RDoc::Markdown.new(@extensions, @debug)
|
|
546
|
+
|
|
547
|
+
# Parse the cell content
|
|
548
|
+
doc = cell_parser.parse(text)
|
|
549
|
+
|
|
550
|
+
# Extract the parsed content
|
|
551
|
+
if doc && doc.parts && !doc.parts.empty?
|
|
552
|
+
para = doc.parts.first
|
|
553
|
+
if para.is_a?(RDoc::Markup::Paragraph)
|
|
554
|
+
para.parts.join
|
|
555
|
+
else
|
|
556
|
+
text
|
|
557
|
+
end
|
|
495
558
|
else
|
|
496
|
-
|
|
559
|
+
text
|
|
497
560
|
end
|
|
498
561
|
end
|
|
499
562
|
}
|
|
@@ -530,7 +593,7 @@ AtxInline = !@Newline !(@Sp /#*/ @Sp @Newline) Inline
|
|
|
530
593
|
AtxStart = < /\#{1,6}/ >
|
|
531
594
|
{ text.length }
|
|
532
595
|
|
|
533
|
-
AtxHeading = AtxStart:s @
|
|
596
|
+
AtxHeading = AtxStart:s @Spacechar+ AtxInline+:a (@Sp /#*/ @Sp)? @Newline
|
|
534
597
|
{ RDoc::Markup::Heading.new(s, a.join) }
|
|
535
598
|
|
|
536
599
|
SetextHeading = SetextHeading1 | SetextHeading2
|
|
@@ -556,8 +619,8 @@ BlockQuote = BlockQuoteRaw:a
|
|
|
556
619
|
|
|
557
620
|
BlockQuoteRaw = @StartList:a
|
|
558
621
|
(( ">" " "? Line:l { a << l } )
|
|
559
|
-
( !">" !@BlankLine Line:c { a << c } )*
|
|
560
|
-
( @BlankLine:n { a << n } )*
|
|
622
|
+
( !">" !@BlankLine !(AtxStart @Spacechar) !Bullet !Enumerator !( &{ github? } Ticks3 ) Line:c { a << c } )*
|
|
623
|
+
( ">" @BlankLine:n { a << n } )*
|
|
561
624
|
)+
|
|
562
625
|
{ inner_parse a.join }
|
|
563
626
|
|
|
@@ -914,6 +977,7 @@ Inline = Str
|
|
|
914
977
|
| InlineNote
|
|
915
978
|
| Code
|
|
916
979
|
| RawHtml
|
|
980
|
+
| StrippedComment
|
|
917
981
|
| Entity
|
|
918
982
|
| EscapedChar
|
|
919
983
|
| Symbol
|
|
@@ -922,11 +986,11 @@ Space = @Spacechar+ { " " }
|
|
|
922
986
|
|
|
923
987
|
Str = @StartList:a
|
|
924
988
|
< @NormalChar+ > { a = text }
|
|
925
|
-
( StrChunk:c { a << c } )* { a }
|
|
989
|
+
( StrChunk:c { a << c } )* { rdoc_escape(a) }
|
|
926
990
|
|
|
927
991
|
StrChunk = < (@NormalChar | /_+/ &Alphanumeric)+ > { text }
|
|
928
992
|
|
|
929
|
-
EscapedChar = "\\" !@Newline < /[:\\`|*_{}\[\]()#+.!><-]/ > { text }
|
|
993
|
+
EscapedChar = "\\" !@Newline < /[:\\`|*_{}\[\]()#+.!><-]/ > { rdoc_escape(text) }
|
|
930
994
|
|
|
931
995
|
Entity = ( HexEntity | DecEntity | CharEntity ):a { a }
|
|
932
996
|
|
|
@@ -941,7 +1005,7 @@ TerminalEndline = @Sp @Newline @Eof
|
|
|
941
1005
|
LineBreak = " " @NormalEndline { RDoc::Markup::HardBreak.new }
|
|
942
1006
|
|
|
943
1007
|
Symbol = < @SpecialChar >
|
|
944
|
-
{ text }
|
|
1008
|
+
{ rdoc_escape(text) }
|
|
945
1009
|
|
|
946
1010
|
# This keeps the parser from getting bogged down on long strings of '*' or '_',
|
|
947
1011
|
# or strings of '*' or '_' with space on each side:
|
|
@@ -992,9 +1056,8 @@ Strike = &{ strike? }
|
|
|
992
1056
|
"~~"
|
|
993
1057
|
{ strike a.join }
|
|
994
1058
|
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
{ "rdoc-image:#{a[/\[(.*)\]/, 1]}" }
|
|
1059
|
+
Image = "!" ExplicitLinkWithLabel:a
|
|
1060
|
+
{ "rdoc-image:#{a[:link]}:#{a[:label]}" }
|
|
998
1061
|
|
|
999
1062
|
Link = ExplicitLink | ReferenceLink | AutoLink
|
|
1000
1063
|
|
|
@@ -1006,8 +1069,11 @@ ReferenceLinkDouble = Label:content < Spnl > !"[]" Label:label
|
|
|
1006
1069
|
ReferenceLinkSingle = Label:content < (Spnl "[]")? >
|
|
1007
1070
|
{ link_to content, content, text }
|
|
1008
1071
|
|
|
1009
|
-
ExplicitLink =
|
|
1010
|
-
|
|
1072
|
+
ExplicitLink = ExplicitLinkWithLabel:a
|
|
1073
|
+
{ "{#{a[:label]}}[#{rdoc_link_url_escape(a[:link])}]" }
|
|
1074
|
+
|
|
1075
|
+
ExplicitLinkWithLabel = Label:label "(" @Sp Source:link Spnl Title @Sp ")"
|
|
1076
|
+
{ { label: label, link: link } }
|
|
1011
1077
|
|
|
1012
1078
|
Source = ( "<" < SourceContents > ">" | < SourceContents > )
|
|
1013
1079
|
{ text }
|
|
@@ -1062,35 +1128,35 @@ Ticks3 = "```" !"`"
|
|
|
1062
1128
|
Ticks4 = "````" !"`"
|
|
1063
1129
|
Ticks5 = "`````" !"`"
|
|
1064
1130
|
|
|
1065
|
-
Code = ( Ticks1
|
|
1131
|
+
Code = ( Ticks1 < (
|
|
1066
1132
|
( !"`" Nonspacechar )+ | !Ticks1 /`+/ |
|
|
1067
|
-
!
|
|
1068
|
-
)+ >
|
|
1069
|
-
Ticks2
|
|
1133
|
+
!Ticks1 ( @Spacechar | @Newline !@BlankLine )
|
|
1134
|
+
)+ > Ticks1 |
|
|
1135
|
+
Ticks2 < (
|
|
1070
1136
|
( !"`" Nonspacechar )+ |
|
|
1071
1137
|
!Ticks2 /`+/ |
|
|
1072
|
-
!
|
|
1073
|
-
)+ >
|
|
1074
|
-
Ticks3
|
|
1138
|
+
!Ticks2 ( @Spacechar | @Newline !@BlankLine )
|
|
1139
|
+
)+ > Ticks2 |
|
|
1140
|
+
Ticks3 < (
|
|
1075
1141
|
( !"`" Nonspacechar )+ |
|
|
1076
1142
|
!Ticks3 /`+/ |
|
|
1077
|
-
!
|
|
1078
|
-
)+ >
|
|
1079
|
-
Ticks4
|
|
1143
|
+
!Ticks3 ( @Spacechar | @Newline !@BlankLine )
|
|
1144
|
+
)+ > Ticks3 |
|
|
1145
|
+
Ticks4 < (
|
|
1080
1146
|
( !"`" Nonspacechar )+ |
|
|
1081
1147
|
!Ticks4 /`+/ |
|
|
1082
|
-
!
|
|
1083
|
-
)+ >
|
|
1084
|
-
Ticks5
|
|
1148
|
+
!Ticks4 ( @Spacechar | @Newline !@BlankLine )
|
|
1149
|
+
)+ > Ticks4 |
|
|
1150
|
+
Ticks5 < (
|
|
1085
1151
|
( !"`" Nonspacechar )+ |
|
|
1086
1152
|
!Ticks5 /`+/ |
|
|
1087
|
-
!
|
|
1088
|
-
)+ >
|
|
1153
|
+
!Ticks5 ( @Spacechar | @Newline !@BlankLine )
|
|
1154
|
+
)+ > Ticks5
|
|
1089
1155
|
)
|
|
1090
|
-
{
|
|
1156
|
+
{ code text }
|
|
1091
1157
|
|
|
1092
|
-
RawHtml = <
|
|
1093
|
-
|
|
1158
|
+
RawHtml = < HtmlBlockScript | HtmlTag > { html? ? text : '' }
|
|
1159
|
+
StrippedComment = HtmlComment { '' }
|
|
1094
1160
|
|
|
1095
1161
|
BlankLine = @Sp @Newline { "\n" }
|
|
1096
1162
|
|
|
@@ -1114,12 +1180,12 @@ Newline = %literals.Newline
|
|
|
1114
1180
|
Spacechar = %literals.Spacechar
|
|
1115
1181
|
|
|
1116
1182
|
HexEntity = /&#x/i < /[0-9a-fA-F]+/ > ";"
|
|
1117
|
-
{ [text.to_i(16)].pack
|
|
1183
|
+
{ rdoc_escape([text.to_i(16)].pack('U')) }
|
|
1118
1184
|
DecEntity = "&#" < /[0-9]+/ > ";"
|
|
1119
|
-
{ [text.to_i].pack
|
|
1185
|
+
{ rdoc_escape([text.to_i].pack('U')) }
|
|
1120
1186
|
CharEntity = "&" </[A-Za-z0-9]+/ > ";"
|
|
1121
1187
|
{ if entity = HTML_ENTITIES[text] then
|
|
1122
|
-
entity.pack
|
|
1188
|
+
rdoc_escape(entity.pack('U*'))
|
|
1123
1189
|
else
|
|
1124
1190
|
"&#{text};"
|
|
1125
1191
|
end
|
|
@@ -1135,7 +1201,7 @@ StartList = &.
|
|
|
1135
1201
|
{ [] }
|
|
1136
1202
|
|
|
1137
1203
|
Line = @RawLine:a { a }
|
|
1138
|
-
RawLine = ( <
|
|
1204
|
+
RawLine = ( < /[^\r\n]*/ @Newline >
|
|
1139
1205
|
| < .+ > @Eof ) { text }
|
|
1140
1206
|
|
|
1141
1207
|
SkipBlock = HtmlBlock
|
|
@@ -1170,23 +1236,25 @@ InlineNote = &{ notes? }
|
|
|
1170
1236
|
@StartList:a
|
|
1171
1237
|
( !"]" Inline:l { a << l } )+
|
|
1172
1238
|
"]"
|
|
1173
|
-
{
|
|
1174
|
-
|
|
1239
|
+
{ if @note_order
|
|
1240
|
+
ref = [:inline, @note_order.length]
|
|
1241
|
+
@footnotes[ref] = paragraph a
|
|
1175
1242
|
|
|
1176
|
-
|
|
1243
|
+
note_for ref
|
|
1244
|
+
end
|
|
1177
1245
|
}
|
|
1178
1246
|
|
|
1179
1247
|
Notes = ( Note | SkipBlock )*
|
|
1180
1248
|
|
|
1181
1249
|
RawNoteBlock = @StartList:a
|
|
1182
|
-
( !@BlankLine OptionallyIndentedLine:l { a << l } )+
|
|
1250
|
+
( !@BlankLine !RawNoteReference OptionallyIndentedLine:l { a << l } )+
|
|
1183
1251
|
( < @BlankLine* > { a << text } )
|
|
1184
1252
|
{ a }
|
|
1185
1253
|
|
|
1186
1254
|
# Markdown extensions added by RDoc follow
|
|
1187
1255
|
|
|
1188
1256
|
CodeFence = &{ github? }
|
|
1189
|
-
Ticks3 (@Sp StrChunk:format)?
|
|
1257
|
+
Ticks3 (@Sp StrChunk:format)? @Sp @Newline? < (
|
|
1190
1258
|
( !"`" Nonspacechar )+ |
|
|
1191
1259
|
!Ticks3 /`+/ |
|
|
1192
1260
|
Spacechar |
|
|
@@ -1198,19 +1266,29 @@ CodeFence = &{ github? }
|
|
|
1198
1266
|
}
|
|
1199
1267
|
|
|
1200
1268
|
Table = &{ github? }
|
|
1201
|
-
|
|
1202
|
-
{
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1269
|
+
TableHead:header TableLine:line TableRow+:body
|
|
1270
|
+
{
|
|
1271
|
+
table = RDoc::Markup::Table.new(header, line, body)
|
|
1272
|
+
parse_table_cells(table)
|
|
1273
|
+
}
|
|
1274
|
+
|
|
1275
|
+
TableHead = TableItem2+:items "|"? @Newline
|
|
1276
|
+
{ items }
|
|
1277
|
+
|
|
1278
|
+
TableRow = ( ( TableItem:item1 TableItem2+:items { [item1, *items] } ):row | TableItem2+:row ) "|"? @Newline
|
|
1279
|
+
{ row }
|
|
1280
|
+
TableItem2 = "|" TableItem
|
|
1281
|
+
TableItem = < /(?:\\.|[^|\n])+/ >
|
|
1282
|
+
{ text.strip.gsub(/\\([|])/, '\1') }
|
|
1283
|
+
|
|
1284
|
+
TableLine = ( ( TableAlign:align1 TableAlign2+:aligns {[align1, *aligns] } ):line | TableAlign2+:line ) "|"? @Newline
|
|
1285
|
+
{ line }
|
|
1286
|
+
TableAlign2 = "|" @Sp TableAlign
|
|
1287
|
+
TableAlign = < /:?-+:?/ > @Sp
|
|
1288
|
+
{
|
|
1289
|
+
text.start_with?(":") ?
|
|
1290
|
+
(text.end_with?(":") ? :center : :left) :
|
|
1291
|
+
(text.end_with?(":") ? :right : nil)
|
|
1214
1292
|
}
|
|
1215
1293
|
|
|
1216
1294
|
DefinitionList = &{ definition_lists? }
|
|
@@ -1230,7 +1308,7 @@ DefinitionListItem = ( DefinitionListLabel+ ):label
|
|
|
1230
1308
|
list_items
|
|
1231
1309
|
}
|
|
1232
1310
|
|
|
1233
|
-
DefinitionListLabel =
|
|
1311
|
+
DefinitionListLabel = Inline:label @Sp @Newline
|
|
1234
1312
|
{ label }
|
|
1235
1313
|
|
|
1236
1314
|
DefinitionListDefinition = @NonindentSpace ":" @Space Inlines:a @BlankLine+
|