Clean up pre/post ambiguity

This commit is contained in:
Christian Muehlhaeuser
2019-11-26 03:55:43 +01:00
parent c0d32b4fcb
commit 8f083a1043
9 changed files with 48 additions and 48 deletions
+8 -8
View File
@@ -10,19 +10,19 @@ import (
) )
type BaseElement struct { type BaseElement struct {
Token string Token string
Pre string Prefix string
Post string Suffix string
Style StyleType Style StyleType
} }
func (e *BaseElement) Render(w io.Writer, node *bf.Node, tr *TermRenderer) error { func (e *BaseElement) Render(w io.Writer, node *bf.Node, tr *TermRenderer) error {
if e.Pre != "" { if e.Prefix != "" {
fmt.Fprintf(w, "%s", e.Pre) fmt.Fprintf(w, "%s", e.Prefix)
} }
defer func() { defer func() {
if e.Post != "" { if e.Suffix != "" {
fmt.Fprintf(w, "%s", e.Post) fmt.Fprintf(w, "%s", e.Suffix)
} }
}() }()
+16 -16
View File
@@ -13,8 +13,8 @@ type ElementRenderer interface {
} }
type Element struct { type Element struct {
Pre string Entering string
Post string Exiting string
Renderer ElementRenderer Renderer ElementRenderer
} }
@@ -28,8 +28,8 @@ func (tr *TermRenderer) NewElement(node *bf.Node) Element {
} }
case bf.BlockQuote: case bf.BlockQuote:
return Element{ return Element{
Pre: "\n", Entering: "\n",
Post: "\n", Exiting: "\n",
Renderer: &BaseElement{ Renderer: &BaseElement{
Token: string(node.Literal), Token: string(node.Literal),
Style: BlockQuote, Style: BlockQuote,
@@ -45,18 +45,18 @@ func (tr *TermRenderer) NewElement(node *bf.Node) Element {
} }
case bf.Paragraph: case bf.Paragraph:
return Element{ return Element{
Post: "\n", Exiting: "\n",
Renderer: &ParagraphElement{}, Renderer: &ParagraphElement{},
} }
case bf.Heading: case bf.Heading:
return Element{ return Element{
Post: "\n", Exiting: "\n",
Renderer: &HeadingElement{}, Renderer: &HeadingElement{},
} }
case bf.HorizontalRule: case bf.HorizontalRule:
return Element{ return Element{
Pre: "\n", Entering: "\n",
Post: "\n", Exiting: "\n",
Renderer: &BaseElement{ Renderer: &BaseElement{
Token: "---", Token: "---",
Style: HorizontalRule, Style: HorizontalRule,
@@ -107,8 +107,8 @@ func (tr *TermRenderer) NewElement(node *bf.Node) Element {
} }
case bf.CodeBlock: case bf.CodeBlock:
return Element{ return Element{
Pre: "\n", Entering: "\n",
Post: "\n", Exiting: "\n",
Renderer: &CodeBlockElement{ Renderer: &CodeBlockElement{
Code: string(node.Literal), Code: string(node.Literal),
Language: string(node.CodeBlockData.Info), Language: string(node.CodeBlockData.Info),
@@ -116,7 +116,7 @@ func (tr *TermRenderer) NewElement(node *bf.Node) Element {
} }
case bf.Softbreak: case bf.Softbreak:
return Element{ return Element{
Post: "\n", Exiting: "\n",
Renderer: &BaseElement{ Renderer: &BaseElement{
Token: string(node.Literal), Token: string(node.Literal),
Style: Softbreak, Style: Softbreak,
@@ -124,7 +124,7 @@ func (tr *TermRenderer) NewElement(node *bf.Node) Element {
} }
case bf.Hardbreak: case bf.Hardbreak:
return Element{ return Element{
Post: "\n", Exiting: "\n",
Renderer: &BaseElement{ Renderer: &BaseElement{
Token: string(node.Literal), Token: string(node.Literal),
Style: Hardbreak, Style: Hardbreak,
@@ -146,8 +146,8 @@ func (tr *TermRenderer) NewElement(node *bf.Node) Element {
} }
case bf.Table: case bf.Table:
return Element{ return Element{
Pre: "\n", Entering: "\n",
Post: "\n", Exiting: "\n",
} }
case bf.TableCell: case bf.TableCell:
return Element{} return Element{}
@@ -157,8 +157,8 @@ func (tr *TermRenderer) NewElement(node *bf.Node) Element {
return Element{} return Element{}
case bf.TableRow: case bf.TableRow:
return Element{ return Element{
Pre: "\n", Entering: "\n",
Post: "\n", Exiting: "\n",
} }
default: default:
+4 -4
View File
@@ -82,11 +82,11 @@ func (tr *TermRenderer) RenderBytes(in []byte) []byte {
func (tr *TermRenderer) RenderNode(w io.Writer, node *bf.Node, entering bool) bf.WalkStatus { func (tr *TermRenderer) RenderNode(w io.Writer, node *bf.Node, entering bool) bf.WalkStatus {
// fmt.Fprintf(w, "%s %t", node.Type, entering) // fmt.Fprintf(w, "%s %t", node.Type, entering)
e := tr.NewElement(node) e := tr.NewElement(node)
if entering && e.Pre != "" { if entering && e.Entering != "" {
fmt.Fprintf(w, "%s", e.Pre) fmt.Fprintf(w, "%s", e.Entering)
} }
if !entering && e.Post != "" { if !entering && e.Exiting != "" {
fmt.Fprintf(w, "%s", e.Post) fmt.Fprintf(w, "%s", e.Exiting)
} }
if isChild(node) { if isChild(node) {
return bf.GoToNext return bf.GoToNext
+3 -3
View File
@@ -18,9 +18,9 @@ func (e *HeadingElement) Render(w io.Writer, node *bf.Node, tr *TermRenderer) er
} }
el := &BaseElement{ el := &BaseElement{
Pre: pre, Prefix: pre,
Token: fmt.Sprintf("%s %s", strings.Repeat("#", node.HeadingData.Level), node.FirstChild.Literal), Token: fmt.Sprintf("%s %s", strings.Repeat("#", node.HeadingData.Level), node.FirstChild.Literal),
Style: Heading, Style: Heading,
} }
return el.Render(w, node, tr) return el.Render(w, node, tr)
} }
+4 -4
View File
@@ -19,10 +19,10 @@ func (e *ImageElement) Render(w io.Writer, node *bf.Node, tr *TermRenderer) erro
} }
if len(node.LinkData.Destination) > 0 { if len(node.LinkData.Destination) > 0 {
el := &BaseElement{ el := &BaseElement{
Token: resolveRelativeURL(tr.BaseURL, string(node.LinkData.Destination)), Token: resolveRelativeURL(tr.BaseURL, string(node.LinkData.Destination)),
Pre: " [Image: ", Prefix: " [Image: ",
Post: "]", Suffix: "]",
Style: Link, Style: Link,
} }
el.Render(w, node, tr) el.Render(w, node, tr)
} }
+4 -4
View File
@@ -25,10 +25,10 @@ func (e *LinkElement) Render(w io.Writer, node *bf.Node, tr *TermRenderer) error
} }
if len(node.LinkData.Destination) > 0 { if len(node.LinkData.Destination) > 0 {
el := &BaseElement{ el := &BaseElement{
Token: resolveRelativeURL(tr.BaseURL, string(node.LinkData.Destination)), Token: resolveRelativeURL(tr.BaseURL, string(node.LinkData.Destination)),
Pre: " (", Prefix: " (",
Post: ")", Suffix: ")",
Style: Link, Style: Link,
} }
el.Render(w, node, tr) el.Render(w, node, tr)
} }
+3 -3
View File
@@ -16,9 +16,9 @@ func (e *ListElement) Render(w io.Writer, node *bf.Node, tr *TermRenderer) error
} }
el := &BaseElement{ el := &BaseElement{
Pre: pre, Prefix: pre,
Token: string(node.Literal), Token: string(node.Literal),
Style: List, Style: List,
} }
return el.Render(w, node, tr) return el.Render(w, node, tr)
} }
+3 -3
View File
@@ -21,9 +21,9 @@ func (e *ItemElement) Render(w io.Writer, node *bf.Node, tr *TermRenderer) error
} }
el := &BaseElement{ el := &BaseElement{
Pre: strings.Repeat(" ", l-1) + "• ", Prefix: strings.Repeat(" ", l-1) + "• ",
Token: string(node.Literal), Token: string(node.Literal),
Style: Item, Style: Item,
} }
return el.Render(w, node, tr) return el.Render(w, node, tr)
} }
+3 -3
View File
@@ -16,9 +16,9 @@ func (e *ParagraphElement) Render(w io.Writer, node *bf.Node, tr *TermRenderer)
} }
el := &BaseElement{ el := &BaseElement{
Pre: pre, Prefix: pre,
Token: string(node.Literal), Token: string(node.Literal),
Style: Paragraph, Style: Paragraph,
} }
return el.Render(w, node, tr) return el.Render(w, node, tr)
} }