From b289f59056223bd259f4f07202ece5d1f077504b Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Mon, 25 Nov 2019 02:39:12 +0100 Subject: [PATCH] Handle nested content inside links --- gold.go | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/gold.go b/gold.go index a82832d..284ee65 100644 --- a/gold.go +++ b/gold.go @@ -221,13 +221,21 @@ func NewElement(node *bf.Node) Element { Style: Del, }}, } + case bf.Link: f := []Fragment{} - if len(node.LastChild.Literal) > 0 { - f = append(f, Fragment{ - Token: string(node.LastChild.Literal), - Style: LinkText, - }) + + if node.LastChild != nil { + if node.LastChild.Type == bf.Image { + el := NewElement(node.LastChild) + f = el.Fragments + } + if len(node.LastChild.Literal) > 0 { + f = append(f, Fragment{ + Token: string(node.LastChild.Literal), + Style: LinkText, + }) + } } if len(node.LinkData.Destination) > 0 { f = append(f, Fragment{ @@ -243,6 +251,7 @@ func NewElement(node *bf.Node) Element { Post: "", Fragments: f, } + case bf.Image: f := []Fragment{} if len(node.LastChild.Literal) > 0 { @@ -265,6 +274,7 @@ func NewElement(node *bf.Node) Element { Post: "", Fragments: f, } + case bf.Text: return Element{ Pre: "",