diff --git a/cmd/gold/main.go b/cmd/gold/main.go index 411ab5c..1837a82 100644 --- a/cmd/gold/main.go +++ b/cmd/gold/main.go @@ -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 } diff --git a/gold.go b/gold.go index ad2bff7..a1b1dfe 100644 --- a/gold.go +++ b/gold.go @@ -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)