From b518696b444a436fefbf3f5af2ed287efb64c9cb Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Wed, 4 Dec 2019 05:47:57 +0100 Subject: [PATCH] Use renderText even without an active style --- baselement.go | 15 ++++++--------- codeblock.go | 1 - paragraph.go | 4 +++- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/baselement.go b/baselement.go index 52344ec..4667fb7 100644 --- a/baselement.go +++ b/baselement.go @@ -68,17 +68,14 @@ func (e *BaseElement) Render(w io.Writer, node *bf.Node, tr *TermRenderer) error renderText(w, tr.blockStyle.Current(), e.Suffix) }() - rules := cascadeStyles(tr.blockStyle, tr.style[e.Style]) - if rules == nil { - _, _ = w.Write([]byte(e.Token)) - return nil + rules := tr.blockStyle.With(tr.style[e.Style]) + if rules != nil { + renderText(w, rules, rules.Prefix) + defer func() { + renderText(w, rules, rules.Suffix) + }() } - renderText(w, rules, rules.Prefix) - defer func() { - renderText(w, rules, rules.Suffix) - }() - renderText(w, rules, e.Token) return nil } diff --git a/codeblock.go b/codeblock.go index 2536d8a..072c39c 100644 --- a/codeblock.go +++ b/codeblock.go @@ -15,7 +15,6 @@ type CodeBlockElement struct { func (e *CodeBlockElement) Render(w io.Writer, node *bf.Node, tr *TermRenderer) error { var theme string var indent uint - rules := tr.style[CodeBlock] if rules != nil { indent = rules.Indent diff --git a/paragraph.go b/paragraph.go index e7cbc69..e931274 100644 --- a/paragraph.go +++ b/paragraph.go @@ -13,6 +13,7 @@ type ParagraphElement struct { func (e *ParagraphElement) Render(w io.Writer, node *bf.Node, tr *TermRenderer) error { tr.paragraph = &bytes.Buffer{} + rules := tr.style[Paragraph] tr.blockStyle.Push(rules) @@ -37,6 +38,7 @@ func (e *ParagraphElement) Finish(w io.Writer, node *bf.Node, tr *TermRenderer) suffix = rules.Suffix if node.Prev == nil || (node.Parent != nil && node.Parent.Type == bf.Item) { + // remove indent for list items indent = 0 } } @@ -66,9 +68,9 @@ func (e *ParagraphElement) Finish(w io.Writer, node *bf.Node, tr *TermRenderer) tr.paragraph.Reset() tr.paragraph = nil + if rules != nil { tr.blockStyle.Pop() } - return nil }