mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
[ruby/rdoc] Fixed CodeFence without blank lines
Currently a fenced code block needs a preceding blank line, it
should not be required, as:
https://github.github.com/gfm/#fenced-code-blocks
> A fenced code block may interrupt a paragraph, and does not
> require a blank line either before or after.
Just recommended:
https://docs.github.com/en/github/writing-on-github/creating-and-highlighting-code-blocks
> We recommend placing a blank line before and after code blocks
> to make the raw formatting easier to read.
0e1776caf3
This commit is contained in:
parent
10b082064e
commit
de8e6218a3
Notes:
git
2021-03-16 15:47:53 +09:00
2 changed files with 113 additions and 372 deletions
|
@ -897,7 +897,7 @@ class RDoc::Markdown
|
||||||
return _tmp
|
return _tmp
|
||||||
end
|
end
|
||||||
|
|
||||||
# Block = @BlankLine* (BlockQuote | Verbatim | CodeFence | Table | Note | Reference | HorizontalRule | Heading | OrderedList | BulletList | DefinitionList | HtmlBlock | StyleBlock | Para | Plain)
|
# Block = @BlankLine* (BlockQuote | Verbatim | CodeFence | Note | Reference | HorizontalRule | Heading | OrderedList | BulletList | DefinitionList | HtmlBlock | StyleBlock | Para | Plain)
|
||||||
def _Block
|
def _Block
|
||||||
|
|
||||||
_save = self.pos
|
_save = self.pos
|
||||||
|
@ -923,9 +923,6 @@ class RDoc::Markdown
|
||||||
_tmp = apply(:_CodeFence)
|
_tmp = apply(:_CodeFence)
|
||||||
break if _tmp
|
break if _tmp
|
||||||
self.pos = _save2
|
self.pos = _save2
|
||||||
_tmp = apply(:_Table)
|
|
||||||
break if _tmp
|
|
||||||
self.pos = _save2
|
|
||||||
_tmp = apply(:_Note)
|
_tmp = apply(:_Note)
|
||||||
break if _tmp
|
break if _tmp
|
||||||
self.pos = _save2
|
self.pos = _save2
|
||||||
|
@ -9323,7 +9320,7 @@ class RDoc::Markdown
|
||||||
return _tmp
|
return _tmp
|
||||||
end
|
end
|
||||||
|
|
||||||
# Inlines = (!@Endline Inline:i { i } | @Endline:c &Inline { c })+:chunks @Endline? { chunks }
|
# Inlines = (!@Endline Inline:i { i } | @Endline:c !(&{ github? } Ticks3 /[^`\n]*$/) &Inline { c })+:chunks @Endline? { chunks }
|
||||||
def _Inlines
|
def _Inlines
|
||||||
|
|
||||||
_save = self.pos
|
_save = self.pos
|
||||||
|
@ -9370,12 +9367,41 @@ class RDoc::Markdown
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
_save6 = self.pos
|
_save6 = self.pos
|
||||||
_tmp = apply(:_Inline)
|
|
||||||
|
_save7 = self.pos
|
||||||
|
while true # sequence
|
||||||
|
_save8 = self.pos
|
||||||
|
_tmp = begin; github? ; end
|
||||||
|
self.pos = _save8
|
||||||
|
unless _tmp
|
||||||
|
self.pos = _save7
|
||||||
|
break
|
||||||
|
end
|
||||||
|
_tmp = apply(:_Ticks3)
|
||||||
|
unless _tmp
|
||||||
|
self.pos = _save7
|
||||||
|
break
|
||||||
|
end
|
||||||
|
_tmp = scan(/\A(?-mix:[^`\n]*$)/)
|
||||||
|
unless _tmp
|
||||||
|
self.pos = _save7
|
||||||
|
end
|
||||||
|
break
|
||||||
|
end # end sequence
|
||||||
|
|
||||||
|
_tmp = _tmp ? nil : true
|
||||||
self.pos = _save6
|
self.pos = _save6
|
||||||
unless _tmp
|
unless _tmp
|
||||||
self.pos = _save5
|
self.pos = _save5
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
|
_save9 = self.pos
|
||||||
|
_tmp = apply(:_Inline)
|
||||||
|
self.pos = _save9
|
||||||
|
unless _tmp
|
||||||
|
self.pos = _save5
|
||||||
|
break
|
||||||
|
end
|
||||||
@result = begin; c ; end
|
@result = begin; c ; end
|
||||||
_tmp = true
|
_tmp = true
|
||||||
unless _tmp
|
unless _tmp
|
||||||
|
@ -9393,61 +9419,90 @@ class RDoc::Markdown
|
||||||
_ary << @result
|
_ary << @result
|
||||||
while true
|
while true
|
||||||
|
|
||||||
_save7 = self.pos
|
_save10 = self.pos
|
||||||
while true # choice
|
while true # choice
|
||||||
|
|
||||||
_save8 = self.pos
|
_save11 = self.pos
|
||||||
while true # sequence
|
while true # sequence
|
||||||
_save9 = self.pos
|
_save12 = self.pos
|
||||||
_tmp = _Endline()
|
_tmp = _Endline()
|
||||||
_tmp = _tmp ? nil : true
|
_tmp = _tmp ? nil : true
|
||||||
self.pos = _save9
|
self.pos = _save12
|
||||||
unless _tmp
|
unless _tmp
|
||||||
self.pos = _save8
|
self.pos = _save11
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
_tmp = apply(:_Inline)
|
_tmp = apply(:_Inline)
|
||||||
i = @result
|
i = @result
|
||||||
unless _tmp
|
unless _tmp
|
||||||
self.pos = _save8
|
self.pos = _save11
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
@result = begin; i ; end
|
@result = begin; i ; end
|
||||||
_tmp = true
|
_tmp = true
|
||||||
unless _tmp
|
unless _tmp
|
||||||
self.pos = _save8
|
self.pos = _save11
|
||||||
end
|
end
|
||||||
break
|
break
|
||||||
end # end sequence
|
end # end sequence
|
||||||
|
|
||||||
break if _tmp
|
break if _tmp
|
||||||
self.pos = _save7
|
self.pos = _save10
|
||||||
|
|
||||||
_save10 = self.pos
|
_save13 = self.pos
|
||||||
while true # sequence
|
while true # sequence
|
||||||
_tmp = _Endline()
|
_tmp = _Endline()
|
||||||
c = @result
|
c = @result
|
||||||
unless _tmp
|
unless _tmp
|
||||||
self.pos = _save10
|
self.pos = _save13
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
_save11 = self.pos
|
_save14 = self.pos
|
||||||
_tmp = apply(:_Inline)
|
|
||||||
self.pos = _save11
|
_save15 = self.pos
|
||||||
|
while true # sequence
|
||||||
|
_save16 = self.pos
|
||||||
|
_tmp = begin; github? ; end
|
||||||
|
self.pos = _save16
|
||||||
|
unless _tmp
|
||||||
|
self.pos = _save15
|
||||||
|
break
|
||||||
|
end
|
||||||
|
_tmp = apply(:_Ticks3)
|
||||||
|
unless _tmp
|
||||||
|
self.pos = _save15
|
||||||
|
break
|
||||||
|
end
|
||||||
|
_tmp = scan(/\A(?-mix:[^`\n]*$)/)
|
||||||
|
unless _tmp
|
||||||
|
self.pos = _save15
|
||||||
|
end
|
||||||
|
break
|
||||||
|
end # end sequence
|
||||||
|
|
||||||
|
_tmp = _tmp ? nil : true
|
||||||
|
self.pos = _save14
|
||||||
unless _tmp
|
unless _tmp
|
||||||
self.pos = _save10
|
self.pos = _save13
|
||||||
|
break
|
||||||
|
end
|
||||||
|
_save17 = self.pos
|
||||||
|
_tmp = apply(:_Inline)
|
||||||
|
self.pos = _save17
|
||||||
|
unless _tmp
|
||||||
|
self.pos = _save13
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
@result = begin; c ; end
|
@result = begin; c ; end
|
||||||
_tmp = true
|
_tmp = true
|
||||||
unless _tmp
|
unless _tmp
|
||||||
self.pos = _save10
|
self.pos = _save13
|
||||||
end
|
end
|
||||||
break
|
break
|
||||||
end # end sequence
|
end # end sequence
|
||||||
|
|
||||||
break if _tmp
|
break if _tmp
|
||||||
self.pos = _save7
|
self.pos = _save10
|
||||||
break
|
break
|
||||||
end # end choice
|
end # end choice
|
||||||
|
|
||||||
|
@ -9464,11 +9519,11 @@ class RDoc::Markdown
|
||||||
self.pos = _save
|
self.pos = _save
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
_save12 = self.pos
|
_save18 = self.pos
|
||||||
_tmp = _Endline()
|
_tmp = _Endline()
|
||||||
unless _tmp
|
unless _tmp
|
||||||
_tmp = true
|
_tmp = true
|
||||||
self.pos = _save12
|
self.pos = _save18
|
||||||
end
|
end
|
||||||
unless _tmp
|
unless _tmp
|
||||||
self.pos = _save
|
self.pos = _save
|
||||||
|
@ -15850,343 +15905,6 @@ class RDoc::Markdown
|
||||||
return _tmp
|
return _tmp
|
||||||
end
|
end
|
||||||
|
|
||||||
# Table = &{ github? } TableRow:header TableLine:line TableRow+:body { table = RDoc::Markup::Table.new(header, line, body) }
|
|
||||||
def _Table
|
|
||||||
|
|
||||||
_save = self.pos
|
|
||||||
while true # sequence
|
|
||||||
_save1 = self.pos
|
|
||||||
_tmp = begin; github? ; end
|
|
||||||
self.pos = _save1
|
|
||||||
unless _tmp
|
|
||||||
self.pos = _save
|
|
||||||
break
|
|
||||||
end
|
|
||||||
_tmp = apply(:_TableRow)
|
|
||||||
header = @result
|
|
||||||
unless _tmp
|
|
||||||
self.pos = _save
|
|
||||||
break
|
|
||||||
end
|
|
||||||
_tmp = apply(:_TableLine)
|
|
||||||
line = @result
|
|
||||||
unless _tmp
|
|
||||||
self.pos = _save
|
|
||||||
break
|
|
||||||
end
|
|
||||||
_save2 = self.pos
|
|
||||||
_ary = []
|
|
||||||
_tmp = apply(:_TableRow)
|
|
||||||
if _tmp
|
|
||||||
_ary << @result
|
|
||||||
while true
|
|
||||||
_tmp = apply(:_TableRow)
|
|
||||||
_ary << @result if _tmp
|
|
||||||
break unless _tmp
|
|
||||||
end
|
|
||||||
_tmp = true
|
|
||||||
@result = _ary
|
|
||||||
else
|
|
||||||
self.pos = _save2
|
|
||||||
end
|
|
||||||
body = @result
|
|
||||||
unless _tmp
|
|
||||||
self.pos = _save
|
|
||||||
break
|
|
||||||
end
|
|
||||||
@result = begin; table = RDoc::Markup::Table.new(header, line, body) ; end
|
|
||||||
_tmp = true
|
|
||||||
unless _tmp
|
|
||||||
self.pos = _save
|
|
||||||
end
|
|
||||||
break
|
|
||||||
end # end sequence
|
|
||||||
|
|
||||||
set_failed_rule :_Table unless _tmp
|
|
||||||
return _tmp
|
|
||||||
end
|
|
||||||
|
|
||||||
# TableRow = < TableItem+:row > "|" @Newline { row }
|
|
||||||
def _TableRow
|
|
||||||
|
|
||||||
_save = self.pos
|
|
||||||
while true # sequence
|
|
||||||
_text_start = self.pos
|
|
||||||
_save1 = self.pos
|
|
||||||
_ary = []
|
|
||||||
_tmp = apply(:_TableItem)
|
|
||||||
if _tmp
|
|
||||||
_ary << @result
|
|
||||||
while true
|
|
||||||
_tmp = apply(:_TableItem)
|
|
||||||
_ary << @result if _tmp
|
|
||||||
break unless _tmp
|
|
||||||
end
|
|
||||||
_tmp = true
|
|
||||||
@result = _ary
|
|
||||||
else
|
|
||||||
self.pos = _save1
|
|
||||||
end
|
|
||||||
row = @result
|
|
||||||
if _tmp
|
|
||||||
text = get_text(_text_start)
|
|
||||||
end
|
|
||||||
unless _tmp
|
|
||||||
self.pos = _save
|
|
||||||
break
|
|
||||||
end
|
|
||||||
_tmp = match_string("|")
|
|
||||||
unless _tmp
|
|
||||||
self.pos = _save
|
|
||||||
break
|
|
||||||
end
|
|
||||||
_tmp = _Newline()
|
|
||||||
unless _tmp
|
|
||||||
self.pos = _save
|
|
||||||
break
|
|
||||||
end
|
|
||||||
@result = begin; row ; end
|
|
||||||
_tmp = true
|
|
||||||
unless _tmp
|
|
||||||
self.pos = _save
|
|
||||||
end
|
|
||||||
break
|
|
||||||
end # end sequence
|
|
||||||
|
|
||||||
set_failed_rule :_TableRow unless _tmp
|
|
||||||
return _tmp
|
|
||||||
end
|
|
||||||
|
|
||||||
# TableItem = "|" < (!"|" !@Newline .)+ > { text.strip }
|
|
||||||
def _TableItem
|
|
||||||
|
|
||||||
_save = self.pos
|
|
||||||
while true # sequence
|
|
||||||
_tmp = match_string("|")
|
|
||||||
unless _tmp
|
|
||||||
self.pos = _save
|
|
||||||
break
|
|
||||||
end
|
|
||||||
_text_start = self.pos
|
|
||||||
_save1 = self.pos
|
|
||||||
|
|
||||||
_save2 = self.pos
|
|
||||||
while true # sequence
|
|
||||||
_save3 = self.pos
|
|
||||||
_tmp = match_string("|")
|
|
||||||
_tmp = _tmp ? nil : true
|
|
||||||
self.pos = _save3
|
|
||||||
unless _tmp
|
|
||||||
self.pos = _save2
|
|
||||||
break
|
|
||||||
end
|
|
||||||
_save4 = self.pos
|
|
||||||
_tmp = _Newline()
|
|
||||||
_tmp = _tmp ? nil : true
|
|
||||||
self.pos = _save4
|
|
||||||
unless _tmp
|
|
||||||
self.pos = _save2
|
|
||||||
break
|
|
||||||
end
|
|
||||||
_tmp = get_byte
|
|
||||||
unless _tmp
|
|
||||||
self.pos = _save2
|
|
||||||
end
|
|
||||||
break
|
|
||||||
end # end sequence
|
|
||||||
|
|
||||||
if _tmp
|
|
||||||
while true
|
|
||||||
|
|
||||||
_save5 = self.pos
|
|
||||||
while true # sequence
|
|
||||||
_save6 = self.pos
|
|
||||||
_tmp = match_string("|")
|
|
||||||
_tmp = _tmp ? nil : true
|
|
||||||
self.pos = _save6
|
|
||||||
unless _tmp
|
|
||||||
self.pos = _save5
|
|
||||||
break
|
|
||||||
end
|
|
||||||
_save7 = self.pos
|
|
||||||
_tmp = _Newline()
|
|
||||||
_tmp = _tmp ? nil : true
|
|
||||||
self.pos = _save7
|
|
||||||
unless _tmp
|
|
||||||
self.pos = _save5
|
|
||||||
break
|
|
||||||
end
|
|
||||||
_tmp = get_byte
|
|
||||||
unless _tmp
|
|
||||||
self.pos = _save5
|
|
||||||
end
|
|
||||||
break
|
|
||||||
end # end sequence
|
|
||||||
|
|
||||||
break unless _tmp
|
|
||||||
end
|
|
||||||
_tmp = true
|
|
||||||
else
|
|
||||||
self.pos = _save1
|
|
||||||
end
|
|
||||||
if _tmp
|
|
||||||
text = get_text(_text_start)
|
|
||||||
end
|
|
||||||
unless _tmp
|
|
||||||
self.pos = _save
|
|
||||||
break
|
|
||||||
end
|
|
||||||
@result = begin; text.strip ; end
|
|
||||||
_tmp = true
|
|
||||||
unless _tmp
|
|
||||||
self.pos = _save
|
|
||||||
end
|
|
||||||
break
|
|
||||||
end # end sequence
|
|
||||||
|
|
||||||
set_failed_rule :_TableItem unless _tmp
|
|
||||||
return _tmp
|
|
||||||
end
|
|
||||||
|
|
||||||
# TableLine = TableColumn+:line "|" @Newline { line }
|
|
||||||
def _TableLine
|
|
||||||
|
|
||||||
_save = self.pos
|
|
||||||
while true # sequence
|
|
||||||
_save1 = self.pos
|
|
||||||
_ary = []
|
|
||||||
_tmp = apply(:_TableColumn)
|
|
||||||
if _tmp
|
|
||||||
_ary << @result
|
|
||||||
while true
|
|
||||||
_tmp = apply(:_TableColumn)
|
|
||||||
_ary << @result if _tmp
|
|
||||||
break unless _tmp
|
|
||||||
end
|
|
||||||
_tmp = true
|
|
||||||
@result = _ary
|
|
||||||
else
|
|
||||||
self.pos = _save1
|
|
||||||
end
|
|
||||||
line = @result
|
|
||||||
unless _tmp
|
|
||||||
self.pos = _save
|
|
||||||
break
|
|
||||||
end
|
|
||||||
_tmp = match_string("|")
|
|
||||||
unless _tmp
|
|
||||||
self.pos = _save
|
|
||||||
break
|
|
||||||
end
|
|
||||||
_tmp = _Newline()
|
|
||||||
unless _tmp
|
|
||||||
self.pos = _save
|
|
||||||
break
|
|
||||||
end
|
|
||||||
@result = begin; line ; end
|
|
||||||
_tmp = true
|
|
||||||
unless _tmp
|
|
||||||
self.pos = _save
|
|
||||||
end
|
|
||||||
break
|
|
||||||
end # end sequence
|
|
||||||
|
|
||||||
set_failed_rule :_TableLine unless _tmp
|
|
||||||
return _tmp
|
|
||||||
end
|
|
||||||
|
|
||||||
# TableColumn = "|" < ("-"+ ":"? | ":" "-"*) > { text.start_with?(":") ? :left : text.end_with?(":") ? :right : nil }
|
|
||||||
def _TableColumn
|
|
||||||
|
|
||||||
_save = self.pos
|
|
||||||
while true # sequence
|
|
||||||
_tmp = match_string("|")
|
|
||||||
unless _tmp
|
|
||||||
self.pos = _save
|
|
||||||
break
|
|
||||||
end
|
|
||||||
_text_start = self.pos
|
|
||||||
|
|
||||||
_save1 = self.pos
|
|
||||||
while true # choice
|
|
||||||
|
|
||||||
_save2 = self.pos
|
|
||||||
while true # sequence
|
|
||||||
_save3 = self.pos
|
|
||||||
_tmp = match_string("-")
|
|
||||||
if _tmp
|
|
||||||
while true
|
|
||||||
_tmp = match_string("-")
|
|
||||||
break unless _tmp
|
|
||||||
end
|
|
||||||
_tmp = true
|
|
||||||
else
|
|
||||||
self.pos = _save3
|
|
||||||
end
|
|
||||||
unless _tmp
|
|
||||||
self.pos = _save2
|
|
||||||
break
|
|
||||||
end
|
|
||||||
_save4 = self.pos
|
|
||||||
_tmp = match_string(":")
|
|
||||||
unless _tmp
|
|
||||||
_tmp = true
|
|
||||||
self.pos = _save4
|
|
||||||
end
|
|
||||||
unless _tmp
|
|
||||||
self.pos = _save2
|
|
||||||
end
|
|
||||||
break
|
|
||||||
end # end sequence
|
|
||||||
|
|
||||||
break if _tmp
|
|
||||||
self.pos = _save1
|
|
||||||
|
|
||||||
_save5 = self.pos
|
|
||||||
while true # sequence
|
|
||||||
_tmp = match_string(":")
|
|
||||||
unless _tmp
|
|
||||||
self.pos = _save5
|
|
||||||
break
|
|
||||||
end
|
|
||||||
while true
|
|
||||||
_tmp = match_string("-")
|
|
||||||
break unless _tmp
|
|
||||||
end
|
|
||||||
_tmp = true
|
|
||||||
unless _tmp
|
|
||||||
self.pos = _save5
|
|
||||||
end
|
|
||||||
break
|
|
||||||
end # end sequence
|
|
||||||
|
|
||||||
break if _tmp
|
|
||||||
self.pos = _save1
|
|
||||||
break
|
|
||||||
end # end choice
|
|
||||||
|
|
||||||
if _tmp
|
|
||||||
text = get_text(_text_start)
|
|
||||||
end
|
|
||||||
unless _tmp
|
|
||||||
self.pos = _save
|
|
||||||
break
|
|
||||||
end
|
|
||||||
@result = begin;
|
|
||||||
text.start_with?(":") ? :left :
|
|
||||||
text.end_with?(":") ? :right : nil
|
|
||||||
; end
|
|
||||||
_tmp = true
|
|
||||||
unless _tmp
|
|
||||||
self.pos = _save
|
|
||||||
end
|
|
||||||
break
|
|
||||||
end # end sequence
|
|
||||||
|
|
||||||
set_failed_rule :_TableColumn unless _tmp
|
|
||||||
return _tmp
|
|
||||||
end
|
|
||||||
|
|
||||||
# DefinitionList = &{ definition_lists? } DefinitionListItem+:list { RDoc::Markup::List.new :NOTE, *list.flatten }
|
# DefinitionList = &{ definition_lists? } DefinitionListItem+:list { RDoc::Markup::List.new :NOTE, *list.flatten }
|
||||||
def _DefinitionList
|
def _DefinitionList
|
||||||
|
|
||||||
|
@ -16386,7 +16104,7 @@ class RDoc::Markdown
|
||||||
Rules = {}
|
Rules = {}
|
||||||
Rules[:_root] = rule_info("root", "Doc")
|
Rules[:_root] = rule_info("root", "Doc")
|
||||||
Rules[:_Doc] = rule_info("Doc", "BOM? Block*:a { RDoc::Markup::Document.new(*a.compact) }")
|
Rules[:_Doc] = rule_info("Doc", "BOM? Block*:a { RDoc::Markup::Document.new(*a.compact) }")
|
||||||
Rules[:_Block] = rule_info("Block", "@BlankLine* (BlockQuote | Verbatim | CodeFence | Table | Note | Reference | HorizontalRule | Heading | OrderedList | BulletList | DefinitionList | HtmlBlock | StyleBlock | Para | Plain)")
|
Rules[:_Block] = rule_info("Block", "@BlankLine* (BlockQuote | Verbatim | CodeFence | Note | Reference | HorizontalRule | Heading | OrderedList | BulletList | DefinitionList | HtmlBlock | StyleBlock | Para | Plain)")
|
||||||
Rules[:_Para] = rule_info("Para", "@NonindentSpace Inlines:a @BlankLine+ { paragraph a }")
|
Rules[:_Para] = rule_info("Para", "@NonindentSpace Inlines:a @BlankLine+ { paragraph a }")
|
||||||
Rules[:_Plain] = rule_info("Plain", "Inlines:a { paragraph a }")
|
Rules[:_Plain] = rule_info("Plain", "Inlines:a { paragraph a }")
|
||||||
Rules[:_AtxInline] = rule_info("AtxInline", "!@Newline !(@Sp /\#*/ @Sp @Newline) Inline")
|
Rules[:_AtxInline] = rule_info("AtxInline", "!@Newline !(@Sp /\#*/ @Sp @Newline) Inline")
|
||||||
|
@ -16530,7 +16248,7 @@ class RDoc::Markdown
|
||||||
Rules[:_StyleClose] = rule_info("StyleClose", "\"<\" Spnl \"/\" (\"style\" | \"STYLE\") Spnl \">\"")
|
Rules[:_StyleClose] = rule_info("StyleClose", "\"<\" Spnl \"/\" (\"style\" | \"STYLE\") Spnl \">\"")
|
||||||
Rules[:_InStyleTags] = rule_info("InStyleTags", "StyleOpen (!StyleClose .)* StyleClose")
|
Rules[:_InStyleTags] = rule_info("InStyleTags", "StyleOpen (!StyleClose .)* StyleClose")
|
||||||
Rules[:_StyleBlock] = rule_info("StyleBlock", "< InStyleTags > @BlankLine* { if css? then RDoc::Markup::Raw.new text end }")
|
Rules[:_StyleBlock] = rule_info("StyleBlock", "< InStyleTags > @BlankLine* { if css? then RDoc::Markup::Raw.new text end }")
|
||||||
Rules[:_Inlines] = rule_info("Inlines", "(!@Endline Inline:i { i } | @Endline:c &Inline { c })+:chunks @Endline? { chunks }")
|
Rules[:_Inlines] = rule_info("Inlines", "(!@Endline Inline:i { i } | @Endline:c !(&{ github? } Ticks3 /[^`\\n]*$/) &Inline { c })+:chunks @Endline? { chunks }")
|
||||||
Rules[:_Inline] = rule_info("Inline", "(Str | @Endline | UlOrStarLine | @Space | Strong | Emph | Strike | Image | Link | NoteReference | InlineNote | Code | RawHtml | Entity | EscapedChar | Symbol)")
|
Rules[:_Inline] = rule_info("Inline", "(Str | @Endline | UlOrStarLine | @Space | Strong | Emph | Strike | Image | Link | NoteReference | InlineNote | Code | RawHtml | Entity | EscapedChar | Symbol)")
|
||||||
Rules[:_Space] = rule_info("Space", "@Spacechar+ { \" \" }")
|
Rules[:_Space] = rule_info("Space", "@Spacechar+ { \" \" }")
|
||||||
Rules[:_Str] = rule_info("Str", "@StartList:a < @NormalChar+ > { a = text } (StrChunk:c { a << c })* { a }")
|
Rules[:_Str] = rule_info("Str", "@StartList:a < @NormalChar+ > { a = text } (StrChunk:c { a << c })* { a }")
|
||||||
|
@ -16619,11 +16337,6 @@ class RDoc::Markdown
|
||||||
Rules[:_Notes] = rule_info("Notes", "(Note | SkipBlock)*")
|
Rules[:_Notes] = rule_info("Notes", "(Note | SkipBlock)*")
|
||||||
Rules[:_RawNoteBlock] = rule_info("RawNoteBlock", "@StartList:a (!@BlankLine OptionallyIndentedLine:l { a << l })+ < @BlankLine* > { a << text } { a }")
|
Rules[:_RawNoteBlock] = rule_info("RawNoteBlock", "@StartList:a (!@BlankLine OptionallyIndentedLine:l { a << l })+ < @BlankLine* > { a << text } { a }")
|
||||||
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 }")
|
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 }")
|
||||||
Rules[:_Table] = rule_info("Table", "&{ github? } TableRow:header TableLine:line TableRow+:body { table = RDoc::Markup::Table.new(header, line, body) }")
|
|
||||||
Rules[:_TableRow] = rule_info("TableRow", "< TableItem+:row > \"|\" @Newline { row }")
|
|
||||||
Rules[:_TableItem] = rule_info("TableItem", "\"|\" < (!\"|\" !@Newline .)+ > { text.strip }")
|
|
||||||
Rules[:_TableLine] = rule_info("TableLine", "TableColumn+:line \"|\" @Newline { line }")
|
|
||||||
Rules[:_TableColumn] = rule_info("TableColumn", "\"|\" < (\"-\"+ \":\"? | \":\" \"-\"*) > { text.start_with?(\":\") ? :left : text.end_with?(\":\") ? :right : nil }")
|
|
||||||
Rules[:_DefinitionList] = rule_info("DefinitionList", "&{ definition_lists? } DefinitionListItem+:list { RDoc::Markup::List.new :NOTE, *list.flatten }")
|
Rules[:_DefinitionList] = rule_info("DefinitionList", "&{ definition_lists? } DefinitionListItem+:list { RDoc::Markup::List.new :NOTE, *list.flatten }")
|
||||||
Rules[:_DefinitionListItem] = rule_info("DefinitionListItem", "DefinitionListLabel+:label DefinitionListDefinition+:defns { list_items = [] list_items << RDoc::Markup::ListItem.new(label, defns.shift) list_items.concat defns.map { |defn| RDoc::Markup::ListItem.new nil, defn } unless list_items.empty? list_items }")
|
Rules[:_DefinitionListItem] = rule_info("DefinitionListItem", "DefinitionListLabel+:label DefinitionListDefinition+:defns { list_items = [] list_items << RDoc::Markup::ListItem.new(label, defns.shift) list_items.concat defns.map { |defn| RDoc::Markup::ListItem.new nil, defn } unless list_items.empty? list_items }")
|
||||||
Rules[:_DefinitionListLabel] = rule_info("DefinitionListLabel", "StrChunk:label @Sp @Newline { label }")
|
Rules[:_DefinitionListLabel] = rule_info("DefinitionListLabel", "StrChunk:label @Sp @Newline { label }")
|
||||||
|
|
|
@ -143,7 +143,7 @@ a block quote
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_parse_code_github
|
def test_parse_code_github
|
||||||
doc = parse <<-MD
|
doc = <<-MD
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -156,11 +156,25 @@ code goes here
|
||||||
para("Example:"),
|
para("Example:"),
|
||||||
verb("code goes here\n"))
|
verb("code goes here\n"))
|
||||||
|
|
||||||
assert_equal expected, doc
|
assert_equal expected, parse(doc)
|
||||||
|
assert_equal expected, parse(doc.sub(/^\n/, ''))
|
||||||
|
|
||||||
|
@parser.github = false
|
||||||
|
|
||||||
|
expected =
|
||||||
|
doc(para("Example:"),
|
||||||
|
para("<code>\n""code goes here\n</code>"))
|
||||||
|
|
||||||
|
assert_equal expected, parse(doc)
|
||||||
|
|
||||||
|
expected =
|
||||||
|
doc(para("Example:\n<code>\n""code goes here\n</code>"))
|
||||||
|
|
||||||
|
assert_equal expected, parse(doc.sub(/^\n/, ''))
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_parse_code_github_format
|
def test_parse_code_github_format
|
||||||
doc = parse <<-MD
|
doc = <<-MD
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
``` ruby
|
``` ruby
|
||||||
|
@ -176,7 +190,21 @@ code goes here
|
||||||
para("Example:"),
|
para("Example:"),
|
||||||
code)
|
code)
|
||||||
|
|
||||||
assert_equal expected, doc
|
assert_equal expected, parse(doc)
|
||||||
|
assert_equal expected, parse(doc.sub(/^\n/, ''))
|
||||||
|
|
||||||
|
@parser.github = false
|
||||||
|
|
||||||
|
expected =
|
||||||
|
doc(para("Example:"),
|
||||||
|
para("<code>ruby\n""code goes here\n</code>"))
|
||||||
|
|
||||||
|
assert_equal expected, parse(doc)
|
||||||
|
|
||||||
|
expected =
|
||||||
|
doc(para("Example:\n<code>ruby\n""code goes here\n</code>"))
|
||||||
|
|
||||||
|
assert_equal expected, parse(doc.sub(/^\n/, ''))
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_parse_definition_list
|
def test_parse_definition_list
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue