mirror of
https://github.com/rwinkhart/glamour-temp-MUTN.git
synced 2026-09-03 07:27:19 -04:00
Add godoc comments to public types
This commit is contained in:
@@ -25,10 +25,14 @@ type TermRenderer struct {
|
||||
context RenderContext
|
||||
}
|
||||
|
||||
// Render initializes a new TermRenderer and renders a markdown with a specific
|
||||
// style.
|
||||
func Render(in string, stylePath string) ([]byte, error) {
|
||||
return RenderBytes([]byte(in), stylePath)
|
||||
}
|
||||
|
||||
// RenderBytes initializes a new TermRenderer and renders a markdown with a
|
||||
// specific style.
|
||||
func RenderBytes(in []byte, stylePath string) ([]byte, error) {
|
||||
r, err := NewTermRenderer(stylePath, Options{
|
||||
WordWrap: 80,
|
||||
@@ -62,6 +66,8 @@ func NewTermRenderer(stylePath string, options Options) (*TermRenderer, error) {
|
||||
return NewTermRendererFromBytes(b, options)
|
||||
}
|
||||
|
||||
// NewTermRendererFromBytes returns a new TermRenderer with style and options
|
||||
// set.
|
||||
func NewTermRendererFromBytes(b []byte, options Options) (*TermRenderer, error) {
|
||||
e := make(map[string]ElementStyle)
|
||||
err := json.Unmarshal(b, &e)
|
||||
@@ -82,30 +88,35 @@ func NewTermRendererFromBytes(b []byte, options Options) (*TermRenderer, error)
|
||||
return tr, nil
|
||||
}
|
||||
|
||||
// Render returns the markdown rendered into a string.
|
||||
func (tr *TermRenderer) Render(in string) string {
|
||||
return string(tr.RenderBytes([]byte(in)))
|
||||
}
|
||||
|
||||
// RenderBytes returns the markdown rendered into a byte slice.
|
||||
func (tr *TermRenderer) RenderBytes(in []byte) []byte {
|
||||
return bf.Run(in, bf.WithRenderer(tr))
|
||||
}
|
||||
|
||||
// RenderNode renders a single markdown node.
|
||||
func (tr *TermRenderer) RenderNode(w io.Writer, node *bf.Node, entering bool) bf.WalkStatus {
|
||||
// _, _ = w.Write([]byte(node.Type.String()))
|
||||
writeTo := w
|
||||
bs := tr.context.blockStack
|
||||
|
||||
// children get rendered by their parent
|
||||
if isChild(node) {
|
||||
return bf.GoToNext
|
||||
}
|
||||
|
||||
e := tr.NewElement(node)
|
||||
if entering {
|
||||
// everything below the Document element gets rendered into a block buffer
|
||||
if bs.Len() > 0 {
|
||||
writeTo = io.Writer(bs.Current().Block)
|
||||
}
|
||||
_, _ = writeTo.Write([]byte(e.Entering))
|
||||
|
||||
_, _ = writeTo.Write([]byte(e.Entering))
|
||||
if e.Renderer != nil {
|
||||
err := e.Renderer.Render(writeTo, tr.context)
|
||||
if err != nil {
|
||||
@@ -114,6 +125,7 @@ func (tr *TermRenderer) RenderNode(w io.Writer, node *bf.Node, entering bool) bf
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// everything below the Document element gets rendered into a block buffer
|
||||
if bs.Len() > 0 {
|
||||
writeTo = io.Writer(bs.Parent().Block)
|
||||
}
|
||||
@@ -131,16 +143,17 @@ func (tr *TermRenderer) RenderNode(w io.Writer, node *bf.Node, entering bool) bf
|
||||
return bf.Terminate
|
||||
}
|
||||
}
|
||||
|
||||
_, _ = writeTo.Write([]byte(e.Exiting))
|
||||
}
|
||||
|
||||
return bf.GoToNext
|
||||
}
|
||||
|
||||
// RenderHeader renders the markdown's header.
|
||||
func (tr *TermRenderer) RenderHeader(w io.Writer, ast *bf.Node) {
|
||||
}
|
||||
|
||||
// RenderFooter renders the markdown's footer.
|
||||
func (tr *TermRenderer) RenderFooter(w io.Writer, ast *bf.Node) {
|
||||
}
|
||||
|
||||
@@ -148,6 +161,8 @@ func isChild(node *bf.Node) bool {
|
||||
if node.Parent == nil {
|
||||
return false
|
||||
}
|
||||
|
||||
// These types are already rendered by their parent
|
||||
switch node.Parent.Type {
|
||||
case bf.Heading, bf.Link, bf.Image, bf.TableCell, bf.Emph, bf.Strong:
|
||||
return true
|
||||
|
||||
Reference in New Issue
Block a user