diff --git a/lib/downmark.rb b/lib/downmark.rb index 90826fd..1d29b6a 100644 --- a/lib/downmark.rb +++ b/lib/downmark.rb @@ -20,7 +20,7 @@ def convert def html_to_markdown(node) markdown = "" - node.children.each do |child| + node.children.each.with_index do |child, _index| case child.name when "a" markdown += "[#{child.text.strip}](#{child["href"]})" if child["href"] @@ -30,8 +30,15 @@ def html_to_markdown(node) markdown += "#{html_to_markdown(child).strip}\n\n" when "span", "u" markdown += " #{html_to_markdown(child).strip} " + when "li" + if child.parent.name == "ol" + value = child["value"].nil? ? child.parent.css("li").index(child) + 1 : child["value"] + markdown += "#{value}. #{html_to_markdown(child).strip}\n" + elsif child.parent.name == "ul" + markdown += "* #{html_to_markdown(child).strip}\n" + end when "ul" - child.css("li").each { |li| markdown += "* #{html_to_markdown(li).strip.strip}\n" } + markdown += "#{html_to_markdown(child).strip}\n" markdown += "\n\n" when "ol" child.css("li").each_with_index do |li, index| diff --git a/test/fixtures/numbered_lists/markdown.md b/test/fixtures/numbered_lists/markdown.md index 9725b4e..9274f61 100644 --- a/test/fixtures/numbered_lists/markdown.md +++ b/test/fixtures/numbered_lists/markdown.md @@ -3,4 +3,4 @@ 1. Test 3 -2. Test 4 \ No newline at end of file +2. Test 4