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