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