Make TermRenderer io.Reader & io.WriteCloser compatible

This commit is contained in:
Christian Muehlhaeuser
2019-12-15 04:53:17 +01:00
parent 0c6cb858cf
commit 9b49abe410
+21 -1
View File
@@ -19,7 +19,9 @@ import (
)
type TermRenderer struct {
md goldmark.Markdown
md goldmark.Markdown
buf bytes.Buffer
renderBuf bytes.Buffer
}
// Render initializes a new TermRenderer and renders a markdown with a specific
@@ -81,6 +83,24 @@ func NewTermRendererFromBytes(b []byte, options ansi.Options) (*TermRenderer, er
}, nil
}
func (tr *TermRenderer) Read(b []byte) (int, error) {
return tr.renderBuf.Read(b)
}
func (tr *TermRenderer) Write(b []byte) (int, error) {
return tr.buf.Write(b)
}
func (tr *TermRenderer) Close() error {
err := tr.md.Convert(tr.buf.Bytes(), &tr.renderBuf)
if err != nil {
return err
}
tr.buf.Reset()
return nil
}
// Render returns the markdown rendered into a string.
func (tr *TermRenderer) Render(in string) (string, error) {
b, err := tr.RenderBytes([]byte(in))