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()
}
w.Write([]byte(aurora.Sprintf("%s", out)))
return nil
_, err := w.Write([]byte(aurora.Sprintf("%s", out)))
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),
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 {
el := &BaseElement{
@@ -24,7 +27,10 @@ func (e *ImageElement) Render(w io.Writer, node *bf.Node, tr *TermRenderer) erro
Suffix: "]",
Style: Link,
}
el.Render(w, node, tr)
err := el.Render(w, node, tr)
if err != nil {
return err
}
}
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.Type == bf.Image {
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 {
el := &BaseElement{
Token: string(node.LastChild.Literal),
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 {
@@ -30,7 +36,10 @@ func (e *LinkElement) Render(w io.Writer, node *bf.Node, tr *TermRenderer) error
Suffix: ")",
Style: Link,
}
el.Render(w, node, tr)
err := el.Render(w, node, tr)
if err != nil {
return err
}
}
return nil