From 985a7e5178d6761a64f569d068853421802f28f9 Mon Sep 17 00:00:00 2001 From: Toby Padilla Date: Tue, 12 Nov 2019 15:53:11 -0500 Subject: [PATCH] Fix child element rendering --- cmd/gold/dark.json | 6 ++++++ gold.go | 21 ++++++++++++++++++--- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/cmd/gold/dark.json b/cmd/gold/dark.json index 045fc5c..75d3550 100644 --- a/cmd/gold/dark.json +++ b/cmd/gold/dark.json @@ -12,5 +12,11 @@ }, "code_block": { "color": "200" + }, + "emph": { + "italic": true + }, + "strong": { + "bold": true } } diff --git a/gold.go b/gold.go index fce8358..21d60fd 100644 --- a/gold.go +++ b/gold.go @@ -79,7 +79,7 @@ func NewElement(node *bf.Node) Element { } case bf.Heading: return Element{ - Token: fmt.Sprintf("%s ", strings.Repeat("#", node.HeadingData.Level)), + Token: fmt.Sprintf("%s %s", strings.Repeat("#", node.HeadingData.Level), node.FirstChild.Literal), Pre: "", Post: "\n", } @@ -91,13 +91,13 @@ func NewElement(node *bf.Node) Element { } case bf.Emph: return Element{ - Token: string(node.Literal), + Token: string(node.FirstChild.Literal), Pre: "", Post: "", } case bf.Strong: return Element{ - Token: string(node.Literal), + Token: string(node.FirstChild.Literal), Pre: "", Post: "", } @@ -251,6 +251,9 @@ func (tr *TermRenderer) RenderNode(w io.Writer, node *bf.Node, entering bool) bf if !entering && el.Post != "" { fmt.Fprintf(w, "%s", el.Post) } + if isChild(node) { + return bf.GoToNext + } if !entering { return bf.GoToNext } @@ -306,6 +309,18 @@ func (tr *TermRenderer) RenderHeader(w io.Writer, ast *bf.Node) { func (tr *TermRenderer) RenderFooter(w io.Writer, ast *bf.Node) { } +func isChild(node *bf.Node) bool { + if node.Parent == nil { + return false + } + switch node.Parent.Type { + case bf.Heading, bf.Link, bf.Emph, bf.Strong: + return true + default: + return false + } +} + func keyToType(key string) (bf.NodeType, error) { switch key { case "document":