github.com/charmbracelet/glamour@v0.7.0/ansi/image.go (about)

     1  package ansi
     2  
     3  import (
     4  	"io"
     5  )
     6  
     7  // An ImageElement is used to render images elements.
     8  type ImageElement struct {
     9  	Text    string
    10  	BaseURL string
    11  	URL     string
    12  	Child   ElementRenderer
    13  }
    14  
    15  func (e *ImageElement) Render(w io.Writer, ctx RenderContext) error {
    16  	if len(e.Text) > 0 {
    17  		el := &BaseElement{
    18  			Token: e.Text,
    19  			Style: ctx.options.Styles.ImageText,
    20  		}
    21  		err := el.Render(w, ctx)
    22  		if err != nil {
    23  			return err
    24  		}
    25  	}
    26  	if len(e.URL) > 0 {
    27  		el := &BaseElement{
    28  			Token:  resolveRelativeURL(e.BaseURL, e.URL),
    29  			Prefix: " ",
    30  			Style:  ctx.options.Styles.Image,
    31  		}
    32  		err := el.Render(w, ctx)
    33  		if err != nil {
    34  			return err
    35  		}
    36  	}
    37  
    38  	return nil
    39  }