From d438c26548ee9ee61594f929e607b4341c8091aa Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Tue, 26 Nov 2019 01:19:50 +0100 Subject: [PATCH] Correctly render nested lists --- gold.go | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/gold.go b/gold.go index e65c69f..ebca1e0 100644 --- a/gold.go +++ b/gold.go @@ -129,8 +129,12 @@ func (tr *TermRenderer) NewElement(node *bf.Node) Element { }}, } case bf.List: + pre := "" + if node.Parent.Type != bf.Item { + pre = "\n" + } return Element{ - Pre: "\n", + Pre: pre, Post: "", Fragments: []Fragment{{ Token: string(node.Literal), @@ -138,8 +142,16 @@ func (tr *TermRenderer) NewElement(node *bf.Node) Element { }}, } case bf.Item: + l := 0 + n := node + for n.Parent != nil && (n.Parent.Type == bf.List || n.Parent.Type == bf.Item) { + if n.Parent.Type == bf.List { + l++ + } + n = n.Parent + } return Element{ - Pre: "• ", + Pre: strings.Repeat(" ", l-1) + "• ", Post: "", Fragments: []Fragment{{ Token: string(node.Literal), @@ -302,7 +314,7 @@ func (tr *TermRenderer) NewElement(node *bf.Node) Element { } case bf.Hardbreak: return Element{ - Pre: "\n", + Pre: "", Post: "\n", Fragments: []Fragment{{ Token: string(node.Literal),