Handle renderer errors

This commit is contained in:
Christian Muehlhaeuser
2019-11-26 03:58:33 +01:00
parent 8f083a1043
commit f47f525238
3 changed files with 22 additions and 7 deletions
+2 -2
View File
@@ -67,6 +67,6 @@ func (e *BaseElement) Render(w io.Writer, node *bf.Node, tr *TermRenderer) error
out = out.Blink() out = out.Blink()
} }
w.Write([]byte(aurora.Sprintf("%s", out))) _, err := w.Write([]byte(aurora.Sprintf("%s", out)))
return nil return err
} }
+8 -2
View File
@@ -15,7 +15,10 @@ func (e *ImageElement) Render(w io.Writer, node *bf.Node, tr *TermRenderer) erro
Token: string(node.LastChild.Literal), Token: string(node.LastChild.Literal),
Style: Image, Style: Image,
} }
el.Render(w, node.LastChild, tr) err := el.Render(w, node.LastChild, tr)
if err != nil {
return err
}
} }
if len(node.LinkData.Destination) > 0 { if len(node.LinkData.Destination) > 0 {
el := &BaseElement{ el := &BaseElement{
@@ -24,7 +27,10 @@ func (e *ImageElement) Render(w io.Writer, node *bf.Node, tr *TermRenderer) erro
Suffix: "]", Suffix: "]",
Style: Link, Style: Link,
} }
el.Render(w, node, tr) err := el.Render(w, node, tr)
if err != nil {
return err
}
} }
return nil return nil
+12 -3
View File
@@ -13,14 +13,20 @@ func (e *LinkElement) Render(w io.Writer, node *bf.Node, tr *TermRenderer) error
if node.LastChild != nil { if node.LastChild != nil {
if node.LastChild.Type == bf.Image { if node.LastChild.Type == bf.Image {
el := tr.NewElement(node.LastChild) el := tr.NewElement(node.LastChild)
el.Renderer.Render(w, node.LastChild, tr) err := el.Renderer.Render(w, node.LastChild, tr)
if err != nil {
return err
}
} }
if len(node.LastChild.Literal) > 0 { if len(node.LastChild.Literal) > 0 {
el := &BaseElement{ el := &BaseElement{
Token: string(node.LastChild.Literal), Token: string(node.LastChild.Literal),
Style: LinkText, Style: LinkText,
} }
el.Render(w, node.LastChild, tr) err := el.Render(w, node.LastChild, tr)
if err != nil {
return err
}
} }
} }
if len(node.LinkData.Destination) > 0 { if len(node.LinkData.Destination) > 0 {
@@ -30,7 +36,10 @@ func (e *LinkElement) Render(w io.Writer, node *bf.Node, tr *TermRenderer) error
Suffix: ")", Suffix: ")",
Style: Link, Style: Link,
} }
el.Render(w, node, tr) err := el.Render(w, node, tr)
if err != nil {
return err
}
} }
return nil return nil