@@ -135,41 +135,33 @@ 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" {
141- link = link [len ("file:" ):]
142- }
138+ func (r * Writer ) resolveLink (link string ) string {
139+ link = strings .TrimPrefix (link , "file:" )
143140 if len (link ) > 0 && ! markup .IsLinkStr (link ) &&
144141 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 )
142+ link = util .URLJoin (r .Ctx .Links .ResolveMediaLink (r .Ctx .IsWiki ), link )
151143 }
152144 return link
153145}
154146
155147// WriteRegularLink renders images, links or videos
156148func (r * Writer ) WriteRegularLink (l org.RegularLink ) {
157- link := r .resolveLink (l )
149+ link := r .resolveLink (l . URL )
158150
159151 // Inspired by https://github.com/niklasfasching/go-org/blob/6eb20dbda93cb88c3503f7508dc78cbbc639378f/org/html_writer.go#L406-L427
160152 switch l .Kind () {
161153 case "image" :
162154 if l .Description == nil {
163155 fmt .Fprintf (r , `<img src="%s" alt="%s" />` , link , link )
164156 } else {
165- imageSrc := r .resolveLink (l .Description [ 0 ].(org. RegularLink ))
157+ imageSrc := r .resolveLink (org . String ( l .Description ... ))
166158 fmt .Fprintf (r , `<a href="%s"><img src="%s" alt="%s" /></a>` , link , imageSrc , imageSrc )
167159 }
168160 case "video" :
169161 if l .Description == nil {
170162 fmt .Fprintf (r , `<video src="%s">%s</video>` , link , link )
171163 } else {
172- videoSrc := r .resolveLink (l .Description [ 0 ].(org. RegularLink ))
164+ videoSrc := r .resolveLink (org . String ( l .Description ... ))
173165 fmt .Fprintf (r , `<a href="%s"><video src="%s">%s</video></a>` , link , videoSrc , videoSrc )
174166 }
175167 default :
0 commit comments