Fix child element rendering

This commit is contained in:
Toby Padilla
2019-11-12 15:53:11 -05:00
parent 8838557f20
commit 8300cb7a55
+18 -3
View File
@@ -79,7 +79,7 @@ func NewElement(node *bf.Node) Element {
} }
case bf.Heading: case bf.Heading:
return Element{ 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: "", Pre: "",
Post: "\n", Post: "\n",
} }
@@ -91,13 +91,13 @@ func NewElement(node *bf.Node) Element {
} }
case bf.Emph: case bf.Emph:
return Element{ return Element{
Token: string(node.Literal), Token: string(node.FirstChild.Literal),
Pre: "", Pre: "",
Post: "", Post: "",
} }
case bf.Strong: case bf.Strong:
return Element{ return Element{
Token: string(node.Literal), Token: string(node.FirstChild.Literal),
Pre: "", Pre: "",
Post: "", Post: "",
} }
@@ -251,6 +251,9 @@ func (tr *TermRenderer) RenderNode(w io.Writer, node *bf.Node, entering bool) bf
if !entering && el.Post != "" { if !entering && el.Post != "" {
fmt.Fprintf(w, "%s", el.Post) fmt.Fprintf(w, "%s", el.Post)
} }
if isChild(node) {
return bf.GoToNext
}
if !entering { if !entering {
return bf.GoToNext 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 (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) { func keyToType(key string) (bf.NodeType, error) {
switch key { switch key {
case "document": case "document":