diff --git a/lib/rdoc/markdown.kpeg b/lib/rdoc/markdown.kpeg index 8b78cdd114..90eccf202c 100644 --- a/lib/rdoc/markdown.kpeg +++ b/lib/rdoc/markdown.kpeg @@ -896,7 +896,8 @@ StyleBlock = < InStyleTags > end } Inlines = ( !@Endline Inline:i { i } - | @Endline:c &Inline { c } )+:chunks @Endline? + | @Endline:c !( &{ github? } Ticks3 /[^`\n]*$/ ) + &Inline { c } )+:chunks @Endline? { chunks } Inline = Str diff --git a/test/rdoc/test_rdoc_markdown.rb b/test/rdoc/test_rdoc_markdown.rb index 9c7a406224..efdd42447e 100644 --- a/test/rdoc/test_rdoc_markdown.rb +++ b/test/rdoc/test_rdoc_markdown.rb @@ -143,7 +143,7 @@ def test_parse_code end def test_parse_code_github - doc = parse <<-MD + doc = <<-MD Example: ``` @@ -156,11 +156,25 @@ def test_parse_code_github para("Example:"), 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("\n""code goes here\n")) + + assert_equal expected, parse(doc) + + expected = + doc(para("Example:\n\n""code goes here\n")) + + assert_equal expected, parse(doc.sub(/^\n/, '')) end def test_parse_code_github_format - doc = parse <<-MD + doc = <<-MD Example: ``` ruby @@ -176,7 +190,21 @@ def test_parse_code_github_format para("Example:"), 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("ruby\n""code goes here\n")) + + assert_equal expected, parse(doc) + + expected = + doc(para("Example:\nruby\n""code goes here\n")) + + assert_equal expected, parse(doc.sub(/^\n/, '')) end def test_parse_definition_list