diff options
author | Hartley McGuire <skipkayhil@gmail.com> | 2024-03-06 19:09:48 -0500 |
---|---|---|
committer | git <svn-admin@ruby-lang.org> | 2024-03-08 10:13:04 +0000 |
commit | 4756eaf5aae46f9fcba7079d891d7a5c59df3cd4 (patch) | |
tree | 73e782c6c5154b2fbdb49233f23ca488746a835c /test/rdoc/test_rdoc_markup_to_markdown.rb | |
parent | e8f796e954a7007620825f8d15796e458d1493bb (diff) |
[ruby/rdoc] Fix ToMarkdown missing newlines for label-lists
Previously, using ToMarkdown on a label-list would generate output that
could not be reparsed by the RDoc::Markdown parser:
```
md = <<~MD
apple
: a red fruit
banana
: a yellow fruit
MD
doc = RDoc::Markdown.parse(md)
doc # => [doc: [list: NOTE [item: ["apple"]; [para: "a red fruit"]], [item: ["banana"]; [para: "a yellow fruit"]]]]
new_md = doc.accept(RDoc::Markup::ToMarkdown.new)
new_md # => "apple\n: a red fruit\nbanana\n: a yellow fruit\n\n"
new_doc = RDoc::Markdown.parse(new_md)
new_doc # => [doc: [list: NOTE [item: ["apple"]; [para: "a red fruit\nbanana\n: a yellow fruit"]]]]
```
The issue is that the [PHP Markdown Extra spec][1] requires a newline
after each definition list item, but ToMarkdown was not putting newlines
between label-list items.
This commit fixes the issue by properly appending a newline after each
label-list item so that the output of ToMarkdown can be reparsed by
RDoc::Markdown:
```
md = <<~MD
apple
: a red fruit
banana
: a yellow fruit
MD
doc = RDoc::Markdown.parse(mdoc)
doc # => [doc: [list: NOTE [item: ["apple"]; [para: "a red fruit"]], [item: ["banana"]; [para: "a yellow fruit"]]]]
new_md = doc.accept(RDoc::Markup::ToMarkdown.new)
new_md # => "apple\n: a red fruit\n\nbanana\n: a yellow fruit\n\n"
new_doc = RDoc::Markdown.parse(new_md)
new_doc # => [doc: [list: NOTE [item: ["apple"]; [para: "a red fruit"]], [item: ["banana"]; [para: "a yellow fruit"]]]]
```
[1]: https://michelf.ca/projects/php-markdown/extra/#def-list
https://github.com/ruby/rdoc/commit/c65266437c
Diffstat (limited to 'test/rdoc/test_rdoc_markup_to_markdown.rb')
-rw-r--r-- | test/rdoc/test_rdoc_markup_to_markdown.rb | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/test/rdoc/test_rdoc_markup_to_markdown.rb b/test/rdoc/test_rdoc_markup_to_markdown.rb index ff47364faa..92ed37bc50 100644 --- a/test/rdoc/test_rdoc_markup_to_markdown.rb +++ b/test/rdoc/test_rdoc_markup_to_markdown.rb @@ -69,7 +69,7 @@ class TestRDocMarkupToMarkdown < RDoc::Markup::TextFormatterTestCase end def accept_list_item_end_label - assert_equal "cat\n: ", @to.res.join + assert_equal "cat\n: \n", @to.res.join assert_equal 0, @to.indent, 'indent' end @@ -79,7 +79,7 @@ class TestRDocMarkupToMarkdown < RDoc::Markup::TextFormatterTestCase end def accept_list_item_end_note - assert_equal "cat\n: ", @to.res.join + assert_equal "cat\n: \n", @to.res.join assert_equal 0, @to.indent, 'indent' end @@ -319,9 +319,7 @@ words words words words expected = <<-EXPECTED * l1 * l1.1 - * l2 - EXPECTED assert_equal expected, @to.end_accepting @@ -343,7 +341,6 @@ words words words words * second - EXPECTED assert_equal expected, @to.end_accepting |