diff --git a/ansi/elements.go b/ansi/elements.go index cf6d2b3..6d690a7 100644 --- a/ansi/elements.go +++ b/ansi/elements.go @@ -62,7 +62,9 @@ func (tr *ANSIRenderer) NewElement(node ast.Node, source []byte) Element { return Element{} } return Element{ - Renderer: &ParagraphElement{}, + Renderer: &ParagraphElement{ + First: node.PreviousSibling() == nil, + }, Finisher: &ParagraphElement{}, } diff --git a/ansi/paragraph.go b/ansi/paragraph.go index 079a1f2..5cd134e 100644 --- a/ansi/paragraph.go +++ b/ansi/paragraph.go @@ -9,13 +9,16 @@ import ( ) type ParagraphElement struct { + First bool } func (e *ParagraphElement) Render(w io.Writer, ctx RenderContext) error { bs := ctx.blockStack rules := ctx.options.Styles.Paragraph - _, _ = w.Write([]byte("\n")) + if !e.First { + _, _ = w.Write([]byte("\n")) + } be := BlockElement{ Block: &bytes.Buffer{}, Style: cascadeStyle(bs.Current().Style, rules, true), diff --git a/testdata/code.test b/testdata/code.test index 737be40..32bb783 100644 --- a/testdata/code.test +++ b/testdata/code.test @@ -1,2 +1 @@ - This is a code.  diff --git a/testdata/emph.test b/testdata/emph.test index 69d2772..db5ee2f 100644 --- a/testdata/emph.test +++ b/testdata/emph.test @@ -1,2 +1 @@ - This text is emphasized.  diff --git a/testdata/image.test b/testdata/image.test index 680c0a8..bce276f 100644 --- a/testdata/image.test +++ b/testdata/image.test @@ -1,2 +1 @@ - Image [Image: https://charm.sh/logo.png].  diff --git a/testdata/link.test b/testdata/link.test index 17265b2..a59d875 100644 --- a/testdata/link.test +++ b/testdata/link.test @@ -1,2 +1 @@ - This is a link (https://charm.sh).  diff --git a/testdata/strong.test b/testdata/strong.test index 6cf578b..d4b7f74 100644 --- a/testdata/strong.test +++ b/testdata/strong.test @@ -1,2 +1 @@ - This text is strong.