@@ -135,41 +135,35 @@ type Writer struct {
135135
136136const mailto = "mailto:"
137137
138- func (r * Writer ) resolveLink (l org.RegularLink ) string {
139- link := html .EscapeString (l .URL )
140- if l .Protocol == "file" {
138+ func (r * Writer ) resolveLink (link string ) string {
139+ if strings .HasPrefix (link , "file:" ) {
141140 link = link [len ("file:" ):]
142141 }
143142 if len (link ) > 0 && ! markup .IsLinkStr (link ) &&
144143 link [0 ] != '#' && ! strings .HasPrefix (link , mailto ) {
145- base := r .Ctx .Links .Base
146- switch l .Kind () {
147- case "image" , "video" :
148- base = r .Ctx .Links .ResolveMediaLink (r .Ctx .IsWiki )
149- }
150- link = util .URLJoin (base , link )
144+ link = util .URLJoin (r .Ctx .Links .ResolveMediaLink (r .Ctx .IsWiki ), link )
151145 }
152146 return link
153147}
154148
155149// WriteRegularLink renders images, links or videos
156150func (r * Writer ) WriteRegularLink (l org.RegularLink ) {
157- link := r .resolveLink (l )
151+ link := r .resolveLink (l . URL )
158152
159153 // Inspired by https://github.com/niklasfasching/go-org/blob/6eb20dbda93cb88c3503f7508dc78cbbc639378f/org/html_writer.go#L406-L427
160154 switch l .Kind () {
161155 case "image" :
162156 if l .Description == nil {
163157 fmt .Fprintf (r , `<img src="%s" alt="%s" />` , link , link )
164158 } else {
165- imageSrc := r .resolveLink (l .Description [ 0 ].(org. RegularLink ))
159+ imageSrc := r .resolveLink (org . String ( l .Description ... ))
166160 fmt .Fprintf (r , `<a href="%s"><img src="%s" alt="%s" /></a>` , link , imageSrc , imageSrc )
167161 }
168162 case "video" :
169163 if l .Description == nil {
170164 fmt .Fprintf (r , `<video src="%s">%s</video>` , link , link )
171165 } else {
172- videoSrc := r .resolveLink (l .Description [ 0 ].(org. RegularLink ))
166+ videoSrc := r .resolveLink (org . String ( l .Description ... ))
173167 fmt .Fprintf (r , `<a href="%s"><video src="%s">%s</video></a>` , link , videoSrc , videoSrc )
174168 }
175169 default :
0 commit comments