rdoc 4.2.1 → 6.3.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rdoc might be problematic. Click here for more details.

Files changed (277) hide show
  1. checksums.yaml +5 -5
  2. data/CONTRIBUTING.rdoc +8 -7
  3. data/Gemfile +12 -0
  4. data/History.rdoc +48 -4
  5. data/LEGAL.rdoc +2 -2
  6. data/README.rdoc +5 -5
  7. data/Rakefile +73 -155
  8. data/bin/console +7 -0
  9. data/bin/setup +6 -0
  10. data/{bin → exe}/rdoc +0 -0
  11. data/{bin → exe}/ri +0 -0
  12. data/lib/rdoc/alias.rb +1 -0
  13. data/lib/rdoc/anon_class.rb +1 -0
  14. data/lib/rdoc/any_method.rb +59 -14
  15. data/lib/rdoc/attr.rb +1 -0
  16. data/lib/rdoc/class_module.rb +5 -2
  17. data/lib/rdoc/code_object.rb +3 -11
  18. data/lib/rdoc/code_objects.rb +1 -0
  19. data/lib/rdoc/comment.rb +32 -11
  20. data/lib/rdoc/constant.rb +3 -2
  21. data/lib/rdoc/context/section.rb +7 -13
  22. data/lib/rdoc/context.rb +78 -23
  23. data/lib/rdoc/cross_reference.rb +33 -14
  24. data/lib/rdoc/encoding.rb +92 -55
  25. data/lib/rdoc/erb_partial.rb +2 -1
  26. data/lib/rdoc/erbio.rb +8 -3
  27. data/lib/rdoc/extend.rb +1 -0
  28. data/lib/rdoc/generator/darkfish.rb +62 -32
  29. data/lib/rdoc/generator/json_index.rb +8 -5
  30. data/lib/rdoc/generator/markup.rb +3 -12
  31. data/lib/rdoc/generator/pot/message_extractor.rb +68 -0
  32. data/lib/rdoc/generator/pot/po.rb +84 -0
  33. data/lib/rdoc/generator/pot/po_entry.rb +141 -0
  34. data/lib/rdoc/generator/pot.rb +4 -3
  35. data/lib/rdoc/generator/ri.rb +1 -0
  36. data/lib/rdoc/generator/template/darkfish/_footer.rhtml +2 -2
  37. data/lib/rdoc/generator/template/darkfish/_head.rhtml +11 -8
  38. data/lib/rdoc/generator/template/darkfish/_sidebar_VCS_info.rhtml +2 -2
  39. data/lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml +2 -2
  40. data/lib/rdoc/generator/template/darkfish/_sidebar_extends.rhtml +7 -7
  41. data/lib/rdoc/generator/template/darkfish/_sidebar_in_files.rhtml +2 -2
  42. data/lib/rdoc/generator/template/darkfish/_sidebar_includes.rhtml +7 -7
  43. data/lib/rdoc/generator/template/darkfish/_sidebar_installed.rhtml +6 -6
  44. data/lib/rdoc/generator/template/darkfish/_sidebar_methods.rhtml +5 -5
  45. data/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +5 -5
  46. data/lib/rdoc/generator/template/darkfish/_sidebar_parent.rhtml +5 -5
  47. data/lib/rdoc/generator/template/darkfish/_sidebar_sections.rhtml +4 -4
  48. data/lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml +4 -4
  49. data/lib/rdoc/generator/template/darkfish/class.rhtml +45 -47
  50. data/lib/rdoc/generator/template/darkfish/css/fonts.css +6 -6
  51. data/lib/rdoc/generator/template/darkfish/css/rdoc.css +55 -6
  52. data/lib/rdoc/generator/template/darkfish/index.rhtml +3 -4
  53. data/lib/rdoc/generator/template/darkfish/js/darkfish.js +23 -100
  54. data/lib/rdoc/generator/template/darkfish/js/search.js +32 -31
  55. data/lib/rdoc/generator/template/darkfish/servlet_root.rhtml +15 -16
  56. data/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +16 -16
  57. data/lib/rdoc/generator/template/json_index/js/navigation.js +4 -41
  58. data/lib/rdoc/generator/template/json_index/js/searcher.js +7 -6
  59. data/lib/rdoc/generator.rb +1 -1
  60. data/lib/rdoc/ghost_method.rb +1 -0
  61. data/lib/rdoc/i18n/locale.rb +2 -1
  62. data/lib/rdoc/i18n/text.rb +5 -4
  63. data/lib/rdoc/i18n.rb +3 -2
  64. data/lib/rdoc/include.rb +1 -0
  65. data/lib/rdoc/known_classes.rb +1 -0
  66. data/lib/rdoc/markdown/entities.rb +1 -0
  67. data/lib/rdoc/markdown/{literals_1_9.kpeg → literals.kpeg} +1 -0
  68. data/lib/rdoc/markdown/{literals_1_9.rb → literals.rb} +1 -4
  69. data/lib/rdoc/markdown.kpeg +94 -51
  70. data/lib/rdoc/markdown.rb +1171 -619
  71. data/lib/rdoc/markup/attr_changer.rb +1 -0
  72. data/lib/rdoc/markup/attr_span.rb +9 -2
  73. data/lib/rdoc/markup/attribute_manager.rb +115 -49
  74. data/lib/rdoc/markup/attributes.rb +7 -6
  75. data/lib/rdoc/markup/blank_line.rb +1 -0
  76. data/lib/rdoc/markup/block_quote.rb +1 -0
  77. data/lib/rdoc/markup/document.rb +1 -0
  78. data/lib/rdoc/markup/formatter.rb +25 -23
  79. data/lib/rdoc/markup/hard_break.rb +1 -0
  80. data/lib/rdoc/markup/heading.rb +4 -3
  81. data/lib/rdoc/markup/include.rb +1 -0
  82. data/lib/rdoc/markup/indented_paragraph.rb +1 -0
  83. data/lib/rdoc/markup/list.rb +1 -0
  84. data/lib/rdoc/markup/list_item.rb +1 -0
  85. data/lib/rdoc/markup/paragraph.rb +1 -0
  86. data/lib/rdoc/markup/parser.rb +78 -61
  87. data/lib/rdoc/markup/pre_process.rb +12 -9
  88. data/lib/rdoc/markup/raw.rb +1 -0
  89. data/lib/rdoc/markup/regexp_handling.rb +41 -0
  90. data/lib/rdoc/markup/rule.rb +1 -0
  91. data/lib/rdoc/markup/to_ansi.rb +1 -0
  92. data/lib/rdoc/markup/to_bs.rb +4 -5
  93. data/lib/rdoc/markup/to_html.rb +71 -25
  94. data/lib/rdoc/markup/to_html_crossref.rb +41 -25
  95. data/lib/rdoc/markup/to_html_snippet.rb +10 -9
  96. data/lib/rdoc/markup/to_joined_paragraph.rb +7 -31
  97. data/lib/rdoc/markup/to_label.rb +10 -9
  98. data/lib/rdoc/markup/to_markdown.rb +9 -8
  99. data/lib/rdoc/markup/to_rdoc.rb +35 -6
  100. data/lib/rdoc/markup/to_table_of_contents.rb +2 -0
  101. data/lib/rdoc/markup/to_test.rb +1 -0
  102. data/lib/rdoc/markup/to_tt_only.rb +3 -2
  103. data/lib/rdoc/markup/verbatim.rb +1 -0
  104. data/lib/rdoc/markup.rb +14 -16
  105. data/lib/rdoc/meta_method.rb +1 -0
  106. data/lib/rdoc/method_attr.rb +2 -1
  107. data/lib/rdoc/mixin.rb +1 -0
  108. data/lib/rdoc/normal_class.rb +3 -2
  109. data/lib/rdoc/normal_module.rb +1 -0
  110. data/lib/rdoc/options.rb +92 -58
  111. data/lib/rdoc/parser/c.rb +219 -223
  112. data/lib/rdoc/parser/changelog.rb +155 -18
  113. data/lib/rdoc/parser/markdown.rb +1 -0
  114. data/lib/rdoc/parser/rd.rb +1 -0
  115. data/lib/rdoc/parser/ripper_state_lex.rb +590 -0
  116. data/lib/rdoc/parser/ruby.rb +635 -468
  117. data/lib/rdoc/parser/ruby_tools.rb +33 -33
  118. data/lib/rdoc/parser/simple.rb +3 -3
  119. data/lib/rdoc/parser/text.rb +1 -0
  120. data/lib/rdoc/parser.rb +17 -50
  121. data/lib/rdoc/rd/block_parser.rb +66 -65
  122. data/lib/rdoc/rd/block_parser.ry +3 -3
  123. data/lib/rdoc/rd/inline.rb +5 -4
  124. data/lib/rdoc/rd/inline_parser.rb +52 -51
  125. data/lib/rdoc/rd/inline_parser.ry +1 -1
  126. data/lib/rdoc/rd.rb +1 -0
  127. data/lib/rdoc/rdoc.rb +68 -63
  128. data/lib/rdoc/require.rb +1 -0
  129. data/lib/rdoc/ri/driver.rb +133 -58
  130. data/lib/rdoc/ri/formatter.rb +1 -0
  131. data/lib/rdoc/ri/paths.rb +4 -20
  132. data/lib/rdoc/ri/store.rb +1 -0
  133. data/lib/rdoc/ri/task.rb +71 -0
  134. data/lib/rdoc/ri.rb +1 -0
  135. data/lib/rdoc/rubygems_hook.rb +5 -12
  136. data/lib/rdoc/servlet.rb +24 -14
  137. data/lib/rdoc/single_class.rb +1 -0
  138. data/lib/rdoc/stats/normal.rb +20 -21
  139. data/lib/rdoc/stats/quiet.rb +1 -0
  140. data/lib/rdoc/stats/verbose.rb +1 -0
  141. data/lib/rdoc/stats.rb +1 -0
  142. data/lib/rdoc/store.rb +41 -41
  143. data/lib/rdoc/task.rb +2 -3
  144. data/lib/rdoc/text.rb +19 -38
  145. data/lib/rdoc/token_stream.rb +56 -32
  146. data/lib/rdoc/tom_doc.rb +17 -11
  147. data/lib/rdoc/top_level.rb +9 -2
  148. data/lib/rdoc/version.rb +8 -0
  149. data/lib/rdoc.rb +24 -10
  150. data/man/ri.1 +247 -0
  151. data/rdoc.gemspec +248 -0
  152. metadata +43 -236
  153. data/.autotest +0 -24
  154. data/.document +0 -5
  155. data/Manifest.txt +0 -306
  156. data/lib/gauntlet_rdoc.rb +0 -84
  157. data/lib/rdoc/generator/template/darkfish/js/jquery.js +0 -4
  158. data/lib/rdoc/markdown/literals_1_8.kpeg +0 -18
  159. data/lib/rdoc/markdown/literals_1_8.rb +0 -416
  160. data/lib/rdoc/markup/formatter_test_case.rb +0 -767
  161. data/lib/rdoc/markup/inline.rb +0 -1
  162. data/lib/rdoc/markup/special.rb +0 -40
  163. data/lib/rdoc/markup/text_formatter_test_case.rb +0 -114
  164. data/lib/rdoc/ruby_lex.rb +0 -1377
  165. data/lib/rdoc/ruby_token.rb +0 -460
  166. data/lib/rdoc/test_case.rb +0 -217
  167. data/test/MarkdownTest_1.0.3/Amps and angle encoding.text +0 -21
  168. data/test/MarkdownTest_1.0.3/Auto links.text +0 -13
  169. data/test/MarkdownTest_1.0.3/Backslash escapes.text +0 -120
  170. data/test/MarkdownTest_1.0.3/Blockquotes with code blocks.text +0 -11
  171. data/test/MarkdownTest_1.0.3/Code Blocks.text +0 -14
  172. data/test/MarkdownTest_1.0.3/Code Spans.text +0 -6
  173. data/test/MarkdownTest_1.0.3/Hard-wrapped paragraphs with list-like lines.text +0 -8
  174. data/test/MarkdownTest_1.0.3/Horizontal rules.text +0 -67
  175. data/test/MarkdownTest_1.0.3/Inline HTML (Advanced).text +0 -15
  176. data/test/MarkdownTest_1.0.3/Inline HTML (Simple).text +0 -69
  177. data/test/MarkdownTest_1.0.3/Inline HTML comments.text +0 -13
  178. data/test/MarkdownTest_1.0.3/Links, inline style.text +0 -12
  179. data/test/MarkdownTest_1.0.3/Links, reference style.text +0 -71
  180. data/test/MarkdownTest_1.0.3/Links, shortcut references.text +0 -20
  181. data/test/MarkdownTest_1.0.3/Literal quotes in titles.text +0 -7
  182. data/test/MarkdownTest_1.0.3/Markdown Documentation - Basics.text +0 -306
  183. data/test/MarkdownTest_1.0.3/Markdown Documentation - Syntax.text +0 -888
  184. data/test/MarkdownTest_1.0.3/Nested blockquotes.text +0 -5
  185. data/test/MarkdownTest_1.0.3/Ordered and unordered lists.text +0 -131
  186. data/test/MarkdownTest_1.0.3/Strong and em together.text +0 -7
  187. data/test/MarkdownTest_1.0.3/Tabs.text +0 -21
  188. data/test/MarkdownTest_1.0.3/Tidyness.text +0 -5
  189. data/test/README +0 -1
  190. data/test/binary.dat +0 -0
  191. data/test/hidden.zip.txt +0 -1
  192. data/test/test.ja.largedoc +0 -3
  193. data/test/test.ja.rdoc +0 -10
  194. data/test/test.ja.txt +0 -8
  195. data/test/test.txt +0 -1
  196. data/test/test_rdoc_alias.rb +0 -13
  197. data/test/test_rdoc_any_method.rb +0 -460
  198. data/test/test_rdoc_attr.rb +0 -190
  199. data/test/test_rdoc_class_module.rb +0 -1492
  200. data/test/test_rdoc_code_object.rb +0 -450
  201. data/test/test_rdoc_comment.rb +0 -504
  202. data/test/test_rdoc_constant.rb +0 -181
  203. data/test/test_rdoc_context.rb +0 -901
  204. data/test/test_rdoc_context_section.rb +0 -130
  205. data/test/test_rdoc_cross_reference.rb +0 -192
  206. data/test/test_rdoc_encoding.rb +0 -227
  207. data/test/test_rdoc_extend.rb +0 -94
  208. data/test/test_rdoc_generator_darkfish.rb +0 -229
  209. data/test/test_rdoc_generator_json_index.rb +0 -324
  210. data/test/test_rdoc_generator_markup.rb +0 -59
  211. data/test/test_rdoc_generator_pot.rb +0 -91
  212. data/test/test_rdoc_generator_pot_po.rb +0 -51
  213. data/test/test_rdoc_generator_pot_po_entry.rb +0 -139
  214. data/test/test_rdoc_generator_ri.rb +0 -78
  215. data/test/test_rdoc_i18n_locale.rb +0 -73
  216. data/test/test_rdoc_i18n_text.rb +0 -123
  217. data/test/test_rdoc_include.rb +0 -108
  218. data/test/test_rdoc_markdown.rb +0 -980
  219. data/test/test_rdoc_markdown_test.rb +0 -1884
  220. data/test/test_rdoc_markup.rb +0 -95
  221. data/test/test_rdoc_markup_attribute_manager.rb +0 -364
  222. data/test/test_rdoc_markup_attributes.rb +0 -39
  223. data/test/test_rdoc_markup_document.rb +0 -207
  224. data/test/test_rdoc_markup_formatter.rb +0 -175
  225. data/test/test_rdoc_markup_hard_break.rb +0 -31
  226. data/test/test_rdoc_markup_heading.rb +0 -29
  227. data/test/test_rdoc_markup_include.rb +0 -19
  228. data/test/test_rdoc_markup_indented_paragraph.rb +0 -53
  229. data/test/test_rdoc_markup_paragraph.rb +0 -32
  230. data/test/test_rdoc_markup_parser.rb +0 -1680
  231. data/test/test_rdoc_markup_pre_process.rb +0 -473
  232. data/test/test_rdoc_markup_raw.rb +0 -22
  233. data/test/test_rdoc_markup_to_ansi.rb +0 -369
  234. data/test/test_rdoc_markup_to_bs.rb +0 -366
  235. data/test/test_rdoc_markup_to_html.rb +0 -662
  236. data/test/test_rdoc_markup_to_html_crossref.rb +0 -225
  237. data/test/test_rdoc_markup_to_html_snippet.rb +0 -711
  238. data/test/test_rdoc_markup_to_joined_paragraph.rb +0 -32
  239. data/test/test_rdoc_markup_to_label.rb +0 -112
  240. data/test/test_rdoc_markup_to_markdown.rb +0 -389
  241. data/test/test_rdoc_markup_to_rdoc.rb +0 -377
  242. data/test/test_rdoc_markup_to_table_of_contents.rb +0 -126
  243. data/test/test_rdoc_markup_to_tt_only.rb +0 -246
  244. data/test/test_rdoc_markup_verbatim.rb +0 -29
  245. data/test/test_rdoc_method_attr.rb +0 -193
  246. data/test/test_rdoc_normal_class.rb +0 -47
  247. data/test/test_rdoc_normal_module.rb +0 -42
  248. data/test/test_rdoc_options.rb +0 -766
  249. data/test/test_rdoc_parser.rb +0 -327
  250. data/test/test_rdoc_parser_c.rb +0 -1896
  251. data/test/test_rdoc_parser_changelog.rb +0 -315
  252. data/test/test_rdoc_parser_markdown.rb +0 -61
  253. data/test/test_rdoc_parser_rd.rb +0 -55
  254. data/test/test_rdoc_parser_ruby.rb +0 -3322
  255. data/test/test_rdoc_parser_simple.rb +0 -115
  256. data/test/test_rdoc_rd.rb +0 -30
  257. data/test/test_rdoc_rd_block_parser.rb +0 -535
  258. data/test/test_rdoc_rd_inline.rb +0 -63
  259. data/test/test_rdoc_rd_inline_parser.rb +0 -177
  260. data/test/test_rdoc_rdoc.rb +0 -455
  261. data/test/test_rdoc_require.rb +0 -25
  262. data/test/test_rdoc_ri_driver.rb +0 -1436
  263. data/test/test_rdoc_ri_paths.rb +0 -155
  264. data/test/test_rdoc_ruby_lex.rb +0 -421
  265. data/test/test_rdoc_ruby_token.rb +0 -19
  266. data/test/test_rdoc_rubygems_hook.rb +0 -251
  267. data/test/test_rdoc_servlet.rb +0 -534
  268. data/test/test_rdoc_single_class.rb +0 -20
  269. data/test/test_rdoc_stats.rb +0 -722
  270. data/test/test_rdoc_store.rb +0 -993
  271. data/test/test_rdoc_task.rb +0 -173
  272. data/test/test_rdoc_text.rb +0 -557
  273. data/test/test_rdoc_token_stream.rb +0 -42
  274. data/test/test_rdoc_tom_doc.rb +0 -520
  275. data/test/test_rdoc_top_level.rb +0 -287
  276. data/test/xref_data.rb +0 -76
  277. data/test/xref_test_case.rb +0 -67
@@ -2,6 +2,7 @@
2
2
 
3
3
  %% header {
4
4
  # coding: UTF-8
5
+ # frozen_string_literal: true
5
6
  # :markup: markdown
6
7
 
7
8
  ##
@@ -17,7 +18,7 @@
17
18
  #
18
19
  # data = File.read("README.md")
19
20
  # formatter = RDoc::Markup::ToHtml.new(RDoc::Options.new, nil)
20
- # html = RDoc::Markdown.parse(data).accept(@formatter)
21
+ # html = RDoc::Markdown.parse(data).accept(formatter)
21
22
  #
22
23
  # # do something with html
23
24
  #
@@ -84,6 +85,18 @@
84
85
  # : A little insect that is known
85
86
  # to enjoy picnics
86
87
  #
88
+ # ### Strike
89
+ #
90
+ # Example:
91
+ #
92
+ # ```
93
+ # This is ~~striked~~.
94
+ # ```
95
+ #
96
+ # Produces:
97
+ #
98
+ # This is ~~striked~~.
99
+ #
87
100
  # ### Github
88
101
  #
89
102
  # The #github extension enables a partial set of [Github Flavored Markdown]
@@ -163,7 +176,7 @@
163
176
  # The port to kpeg was performed by Eric Hodel and Evan Phoenix
164
177
  #
165
178
  # [dingus]: http://daringfireball.net/projects/markdown/dingus
166
- # [GFM]: http://github.github.com/github-flavored-markdown/
179
+ # [GFM]: https://github.github.com/gfm/
167
180
  # [pegmarkdown]: https://github.com/jgm/peg-markdown
168
181
  # [PHPE]: http://michelf.com/projects/php-markdown/extra/#def-list
169
182
  # [syntax]: http://daringfireball.net/projects/markdown/syntax
@@ -174,16 +187,11 @@
174
187
 
175
188
  %% {
176
189
 
177
- require 'rubygems'
178
190
  require 'rdoc'
179
191
  require 'rdoc/markup/to_joined_paragraph'
180
192
  require 'rdoc/markdown/entities'
181
193
 
182
- if RUBY_VERSION > '1.9' then
183
- require 'rdoc/markdown/literals_1_9'
184
- else
185
- require 'rdoc/markdown/literals_1_8'
186
- end
194
+ require 'rdoc/markdown/literals'
187
195
 
188
196
  ##
189
197
  # Supported extensions
@@ -198,6 +206,7 @@
198
206
  :github,
199
207
  :html,
200
208
  :notes,
209
+ :strike,
201
210
  ]
202
211
 
203
212
  # :section: Extensions
@@ -248,6 +257,11 @@
248
257
 
249
258
  extension :notes
250
259
 
260
+ ##
261
+ # Enables the strike extension
262
+
263
+ extension :strike
264
+
251
265
  # :section:
252
266
 
253
267
  ##
@@ -336,7 +350,7 @@
336
350
  # with the linking `text` (usually whitespace).
337
351
 
338
352
  def link_to content, label = content, text = nil
339
- raise 'enable notes extension' if
353
+ raise ParseError, 'enable notes extension' if
340
354
  content.start_with? '^' and label.equal? content
341
355
 
342
356
  if ref = @references[label] then
@@ -471,6 +485,17 @@
471
485
  "<b>#{text}</b>"
472
486
  end
473
487
  end
488
+
489
+ ##
490
+ # Wraps `text` in strike markup for rdoc inline formatting
491
+
492
+ def strike text
493
+ if text =~ /\A[a-z\d.\/-]+\z/i then
494
+ "~#{text}~"
495
+ else
496
+ "<s>#{text}</s>"
497
+ end
498
+ end
474
499
  }
475
500
 
476
501
  root = Doc
@@ -481,6 +506,7 @@ Block = @BlankLine*
481
506
  ( BlockQuote
482
507
  | Verbatim
483
508
  | CodeFence
509
+ | Table
484
510
  | Note
485
511
  | Reference
486
512
  | HorizontalRule
@@ -499,27 +525,27 @@ Para = @NonindentSpace Inlines:a @BlankLine+
499
525
  Plain = Inlines:a
500
526
  { paragraph a }
501
527
 
502
- AtxInline = !@Newline !(@Sp? /#*/ @Sp @Newline) Inline
528
+ AtxInline = !@Newline !(@Sp /#*/ @Sp @Newline) Inline
503
529
 
504
530
  AtxStart = < /\#{1,6}/ >
505
531
  { text.length }
506
532
 
507
- AtxHeading = AtxStart:s @Sp? AtxInline+:a (@Sp? /#*/ @Sp)? @Newline
533
+ AtxHeading = AtxStart:s @Sp AtxInline+:a (@Sp /#*/ @Sp)? @Newline
508
534
  { RDoc::Markup::Heading.new(s, a.join) }
509
535
 
510
536
  SetextHeading = SetextHeading1 | SetextHeading2
511
537
 
512
- SetextBottom1 = /={3,}/ @Newline
538
+ SetextBottom1 = /={1,}/ @Newline
513
539
 
514
- SetextBottom2 = /-{3,}/ @Newline
540
+ SetextBottom2 = /-{1,}/ @Newline
515
541
 
516
542
  SetextHeading1 = &(@RawLine SetextBottom1)
517
- @StartList:a ( !@Endline Inline:b { a << b } )+ @Sp? @Newline
543
+ @StartList:a ( !@Endline Inline:b { a << b } )+ @Sp @Newline
518
544
  SetextBottom1
519
545
  { RDoc::Markup::Heading.new(1, a.join) }
520
546
 
521
547
  SetextHeading2 = &(@RawLine SetextBottom2)
522
- @StartList:a ( !@Endline Inline:b { a << b })+ @Sp? @Newline
548
+ @StartList:a ( !@Endline Inline:b { a << b })+ @Sp @Newline
523
549
  SetextBottom2
524
550
  { RDoc::Markup::Heading.new(2, a.join) }
525
551
 
@@ -738,6 +764,9 @@ HtmlBlockOpenScript = "<" Spnl ("script" | "SCRIPT") Spnl HtmlAttribute* ">"
738
764
  HtmlBlockCloseScript = "<" Spnl "/" ("script" | "SCRIPT") Spnl ">"
739
765
  HtmlBlockScript = HtmlBlockOpenScript (!HtmlBlockCloseScript .)* HtmlBlockCloseScript
740
766
 
767
+ HtmlBlockOpenHead = "<" Spnl ("head" | "HEAD") Spnl HtmlAttribute* ">"
768
+ HtmlBlockCloseHead = "<" Spnl "/" ("head" | "HEAD") Spnl ">"
769
+ HtmlBlockHead = HtmlBlockOpenHead (!HtmlBlockCloseHead .)* HtmlBlockCloseHead
741
770
 
742
771
  HtmlBlockInTags = HtmlAnchor
743
772
  | HtmlBlockAddress
@@ -773,6 +802,7 @@ HtmlBlockInTags = HtmlAnchor
773
802
  | HtmlBlockThead
774
803
  | HtmlBlockTr
775
804
  | HtmlBlockScript
805
+ | HtmlBlockHead
776
806
 
777
807
  HtmlBlock = < ( HtmlBlockInTags | HtmlComment | HtmlBlockSelfClosing | HtmlUnclosed) >
778
808
  @BlankLine+
@@ -867,7 +897,8 @@ StyleBlock = < InStyleTags >
867
897
  end }
868
898
 
869
899
  Inlines = ( !@Endline Inline:i { i }
870
- | @Endline:c &Inline { c } )+:chunks @Endline?
900
+ | @Endline:c !( &{ github? } Ticks3 /[^`\n]*$/ )
901
+ &Inline { c } )+:chunks @Endline?
871
902
  { chunks }
872
903
 
873
904
  Inline = Str
@@ -876,6 +907,7 @@ Inline = Str
876
907
  | @Space
877
908
  | Strong
878
909
  | Emph
910
+ | Strike
879
911
  | Image
880
912
  | Link
881
913
  | NoteReference
@@ -901,7 +933,7 @@ Entity = ( HexEntity | DecEntity | CharEntity ):a { a }
901
933
  Endline = @LineBreak | @TerminalEndline | @NormalEndline
902
934
 
903
935
  NormalEndline = @Sp @Newline !@BlankLine !">" !AtxStart
904
- !(Line /={3,}|-{3,}=/ @Newline)
936
+ !(Line /={1,}|-{1,}/ @Newline)
905
937
  { "\n" }
906
938
 
907
939
  TerminalEndline = @Sp @Newline @Eof
@@ -921,46 +953,44 @@ UlLine = < /_{4,}/ > { text } |
921
953
 
922
954
  Emph = EmphStar | EmphUl
923
955
 
924
- OneStarOpen = !StarLine "*" !@Spacechar !@Newline
925
- OneStarClose = !@Spacechar !@Newline Inline:a "*"
926
- { a }
956
+ Whitespace = @Spacechar | @Newline
927
957
 
928
- EmphStar = OneStarOpen
958
+ EmphStar = "*" !@Whitespace
929
959
  @StartList:a
930
- ( !OneStarClose Inline:l { a << l } )*
931
- OneStarClose:l { a << l }
960
+ ( !"*" Inline:b { a << b }
961
+ | StrongStar:b { a << b }
962
+ )+
963
+ "*"
932
964
  { emphasis a.join }
933
965
 
934
- OneUlOpen = !UlLine "_" !@Spacechar !@Newline
935
- OneUlClose = !@Spacechar !@Newline Inline:a "_" # !Alphanumeric # TODO check
936
- { a }
937
-
938
- EmphUl = OneUlOpen
966
+ EmphUl = "_" !@Whitespace
939
967
  @StartList:a
940
- ( !OneUlClose Inline:l { a << l } )*
941
- OneUlClose:l { a << l }
968
+ ( !"_" Inline:b { a << b }
969
+ | StrongUl:b { a << b }
970
+ )+
971
+ "_"
942
972
  { emphasis a.join }
943
973
 
944
974
  Strong = StrongStar | StrongUl
945
975
 
946
- TwoStarOpen = !StarLine "**" !@Spacechar !@Newline
947
- TwoStarClose = !@Spacechar !@Newline Inline:a "**" { a }
948
-
949
- StrongStar = TwoStarOpen
976
+ StrongStar = "**" !@Whitespace
950
977
  @StartList:a
951
- ( !TwoStarClose Inline:l { a << l } )*
952
- TwoStarClose:l { a << l }
978
+ ( !"**" Inline:b { a << b } )+
979
+ "**"
953
980
  { strong a.join }
954
981
 
955
- TwoUlOpen = !UlLine "__" !@Spacechar !@Newline
956
- TwoUlClose = !@Spacechar !@Newline Inline:a "__" # !Alphanumeric # TODO check
957
- { a }
982
+ StrongUl = "__" !@Whitespace
983
+ @StartList:a
984
+ ( !"__" Inline:b { a << b } )+
985
+ "__"
986
+ { strong a.join }
958
987
 
959
- StrongUl = TwoUlOpen
960
- @StartList:a
961
- ( !TwoUlClose Inline:i { a << i } )*
962
- TwoUlClose:l { a << l }
963
- { strong a.join }
988
+ Strike = &{ strike? }
989
+ "~~" !@Whitespace
990
+ @StartList:a
991
+ ( !"~~" Inline:b { a << b } )+
992
+ "~~"
993
+ { strike a.join }
964
994
 
965
995
  # TODO alt text support
966
996
  Image = "!" ( ExplicitLink | ReferenceLink ):a
@@ -976,14 +1006,13 @@ ReferenceLinkDouble = Label:content < Spnl > !"[]" Label:label
976
1006
  ReferenceLinkSingle = Label:content < (Spnl "[]")? >
977
1007
  { link_to content, content, text }
978
1008
 
979
- ExplicitLink = Label:l Spnl "(" @Sp Source:s Spnl Title @Sp ")"
1009
+ ExplicitLink = Label:l "(" @Sp Source:s Spnl Title @Sp ")"
980
1010
  { "{#{l}}[#{s}]" }
981
1011
 
982
1012
  Source = ( "<" < SourceContents > ">" | < SourceContents > )
983
1013
  { text }
984
1014
 
985
1015
  SourceContents = ( ( !"(" !")" !">" Nonspacechar )+ | "(" SourceContents ")")*
986
- | ""
987
1016
 
988
1017
  Title = ( TitleSingle | TitleDouble | "" ):a
989
1018
  { a }
@@ -1073,7 +1102,7 @@ Eof = !.
1073
1102
  Nonspacechar = !@Spacechar !@Newline .
1074
1103
  Sp = @Spacechar*
1075
1104
  Spnl = @Sp (@Newline @Sp)?
1076
- SpecialChar = /[*_`&\[\]()<!#\\'"]/ | @ExtendedSpecialChar
1105
+ SpecialChar = /[~*_`&\[\]()<!#\\'"]/ | @ExtendedSpecialChar
1077
1106
  NormalChar = !( @SpecialChar | @Spacechar | @Newline ) .
1078
1107
  Digit = [0-9]
1079
1108
 
@@ -1082,7 +1111,6 @@ Alphanumeric = %literals.Alphanumeric
1082
1111
  AlphanumericAscii = %literals.AlphanumericAscii
1083
1112
  BOM = %literals.BOM
1084
1113
  Newline = %literals.Newline
1085
- NonAlphanumeric = %literals.NonAlphanumeric
1086
1114
  Spacechar = %literals.Spacechar
1087
1115
 
1088
1116
  HexEntity = /&#x/i < /[0-9a-fA-F]+/ > ";"
@@ -1142,8 +1170,7 @@ InlineNote = &{ notes? }
1142
1170
  @StartList:a
1143
1171
  ( !"]" Inline:l { a << l } )+
1144
1172
  "]"
1145
- {
1146
- ref = [:inline, @note_order.length]
1173
+ { ref = [:inline, @note_order.length]
1147
1174
  @footnotes[ref] = paragraph a
1148
1175
 
1149
1176
  note_for ref
@@ -1166,10 +1193,26 @@ CodeFence = &{ github? }
1166
1193
  @Newline
1167
1194
  )+ > Ticks3 @Sp @Newline*
1168
1195
  { verbatim = RDoc::Markup::Verbatim.new text
1169
- verbatim.format = format.intern if format
1196
+ verbatim.format = format.intern if format.instance_of?(String)
1170
1197
  verbatim
1171
1198
  }
1172
1199
 
1200
+ Table = &{ github? }
1201
+ TableRow:header TableLine:line TableRow+:body
1202
+ { table = RDoc::Markup::Table.new(header, line, body) }
1203
+
1204
+ TableRow = TableItem+:row "|" @Newline
1205
+ { row }
1206
+ TableItem = "|" < (!"|" !@Newline .)+ >
1207
+ { text.strip }
1208
+
1209
+ TableLine = TableColumn+:line "|" @Newline
1210
+ { line }
1211
+ TableColumn = "|" < ( "-"+ ":"? | ":" "-"* ) >
1212
+ { text.start_with?(":") ? :left :
1213
+ text.end_with?(":") ? :right : nil
1214
+ }
1215
+
1173
1216
  DefinitionList = &{ definition_lists? }
1174
1217
  ( DefinitionListItem+:list )
1175
1218
  { RDoc::Markup::List.new :NOTE, *list.flatten }