okami.mom/glamour
git clone https://git.nkp.pet/okami.mom/glamour
cf874d7
main
1package ansi 2 3import ( 4"io" 5"strings" 6) 7 8// An ImageElement is used to render images elements. 9type ImageElement struct { 10Text string 11BaseURL string 12URL string 13Child ElementRenderer 14TextOnly bool 15} 16 17// Render renders an ImageElement. 18func (e * ImageElement )Render (w io.Writer ,ctx RenderContext )error { 19// Make OSC 8 hyperlink token. 20hyperlink ,resetHyperlink ,_ := makeHyperlink (e .URL ) 21 22style := ctx .options .Styles .ImageText 23if e .TextOnly { 24style .Format = strings .TrimSuffix (style .Format ," →" ) 25 } 26 27if len (e .Text )> 0 { 28token := hyperlink + e .Text + resetHyperlink 29el := & BaseElement { 30Token :token , 31Style :style , 32 } 33err := el .Render (w ,ctx ) 34if err != nil { 35return err 36 } 37 } 38 39if e .TextOnly { 40return nil 41 } 42 43if len (e .URL )> 0 { 44token := hyperlink + resolveRelativeURL (e .BaseURL ,e .URL )+ resetHyperlink 45el := & BaseElement { 46Token :token , 47Prefix :" " , 48Style :ctx .options .Styles .Image , 49 } 50err := el .Render (w ,ctx ) 51if err != nil { 52return err 53 } 54 } 55 56return nil 57}