From dd2dd90626583f0573071818e5d896b36f659496 Mon Sep 17 00:00:00 2001 From: Laurel Schmidt Date: Mon, 28 Jul 2025 12:21:27 -0500 Subject: [PATCH 1/2] Fix extra newlines after sub-lists --- md/md_renderer.go | 4 +++- md/md_renderer_test.go | 20 ++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/md/md_renderer.go b/md/md_renderer.go index 4d01a12..d5c8455 100644 --- a/md/md_renderer.go +++ b/md/md_renderer.go @@ -88,7 +88,9 @@ func (r *Renderer) list(w io.Writer, node *ast.List, entering bool) { } } else { r.listDepth-- - fmt.Fprintf(w, "\n") + if _, ok := node.Parent.(*ast.ListItem); !ok { + fmt.Fprintf(w, "\n") + } } } diff --git a/md/md_renderer_test.go b/md/md_renderer_test.go index 8302f1b..c9d2a1c 100644 --- a/md/md_renderer_test.go +++ b/md/md_renderer_test.go @@ -150,6 +150,26 @@ func TestRenderList(t *testing.T) { expected = "* aaa\n * aaa1\n * aaa2\n\n* bbb\n* ccc\n* ddd\n\n" testRendering(t, input, expected) + source = []byte("* aaa\n * aaa1\n\n") + input = markdown.Parse(source, nil) + expected = "* aaa\n * aaa1\n\n" + testRendering(t, input, expected) + + source = []byte("* aaa\n * aaa1\n * aaa1.1\n\n") + input = markdown.Parse(source, nil) + expected = "* aaa\n * aaa1\n * aaa1.1\n\n" + testRendering(t, input, expected) + + source = []byte("1. aaa\n 1. aaa1\n\n") + input = markdown.Parse(source, nil) + expected = "1. aaa\n 1. aaa1\n\n" + testRendering(t, input, expected) + + source = []byte("1. aaa\n 1. aaa1\n 1. aaa1.1\n\n") + input = markdown.Parse(source, nil) + expected = "1. aaa\n 1. aaa1\n 1. aaa1.1\n\n" + testRendering(t, input, expected) + source = []byte("This is an [example](https://example.com) and another [website](https://github.com).") input = markdown.Parse(source, nil) rendererOpts := []RendererOpt{WithRenderInFooter(true)} From 4c811804c971a1be470e25a482a4eb33f1986322 Mon Sep 17 00:00:00 2001 From: Laurel Schmidt Date: Wed, 6 Aug 2025 08:47:11 -0500 Subject: [PATCH 2/2] Remove extra newline from unit test --- md/md_renderer_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/md/md_renderer_test.go b/md/md_renderer_test.go index c9d2a1c..eef736e 100644 --- a/md/md_renderer_test.go +++ b/md/md_renderer_test.go @@ -147,7 +147,7 @@ func TestRenderList(t *testing.T) { source = []byte("* aaa\n * aaa1\n * aaa2\n* bbb\n* ccc\n* ddd\n") input = markdown.Parse(source, nil) - expected = "* aaa\n * aaa1\n * aaa2\n\n* bbb\n* ccc\n* ddd\n\n" + expected = "* aaa\n * aaa1\n * aaa2\n* bbb\n* ccc\n* ddd\n\n" testRendering(t, input, expected) source = []byte("* aaa\n * aaa1\n\n")