Move Render and RenderBytes to TermRenderer

This commit is contained in:
Toby Padilla 2019-11-24 13:35:01 -06:00
commit d3fbd57839
2 changed files with 11 additions and 2 deletions

View file

@ -82,10 +82,11 @@ func execute(cmd *cobra.Command, args []string) error {
defer in.Close()
b, _ := ioutil.ReadAll(in)
out, err := gold.RenderBytes(b, style)
r, err := gold.NewTermRenderer(style)
if err != nil {
return err
}
out := r.RenderBytes(b)
fmt.Printf("%s", string(out))
return nil
}

10
gold.go
View file

@ -46,7 +46,7 @@ func RenderBytes(in []byte, stylePath string) ([]byte, error) {
if err != nil {
return nil, err
}
return bf.Run(in, bf.WithRenderer(r)), nil
return r.RenderBytes(in), nil
}
func NewTermRenderer(stylePath string) (*TermRenderer, error) {
@ -254,6 +254,14 @@ func NewElement(node *bf.Node) Element {
}
}
func (tr *TermRenderer) Render(in string) string {
return string(tr.RenderBytes([]byte(in)))
}
func (tr *TermRenderer) RenderBytes(in []byte) []byte {
return bf.Run(in, bf.WithRenderer(tr))
}
func (tr *TermRenderer) RenderNode(w io.Writer, node *bf.Node, entering bool) bf.WalkStatus {
// fmt.Fprintf(w, "%s %t", node.Type, entering)
el := NewElement(node)