@@ -135,41 +135,35 @@ type Writer struct {
135
135
136
136
const mailto = "mailto:"
137
137
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:") {
141
140
link = link[len("file:"):]
142
141
}
143
142
if len(link) > 0 && !markup.IsLinkStr(link) &&
144
143
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)
151
145
}
152
146
return link
153
147
}
154
148
155
149
// WriteRegularLink renders images, links or videos
156
150
func (r *Writer) WriteRegularLink(l org.RegularLink) {
157
- link := r.resolveLink(l)
151
+ link := r.resolveLink(l.URL )
158
152
159
153
// Inspired by https://github.com/niklasfasching/go-org/blob/6eb20dbda93cb88c3503f7508dc78cbbc639378f/org/html_writer.go#L406-L427
160
154
switch l.Kind() {
161
155
case "image":
162
156
if l.Description == nil {
163
157
fmt.Fprintf(r, `<img src="%s" alt="%s" />`, link, link)
164
158
} else {
165
- imageSrc := r.resolveLink(l.Description[0].(org.RegularLink ))
159
+ imageSrc := r.resolveLink(org.String( l.Description... ))
166
160
fmt.Fprintf(r, `<a href="%s"><img src="%s" alt="%s" /></a>`, link, imageSrc, imageSrc)
167
161
}
168
162
case "video":
169
163
if l.Description == nil {
170
164
fmt.Fprintf(r, `<video src="%s">%s</video>`, link, link)
171
165
} else {
172
- videoSrc := r.resolveLink(l.Description[0].(org.RegularLink ))
166
+ videoSrc := r.resolveLink(org.String( l.Description... ))
173
167
fmt.Fprintf(r, `<a href="%s"><video src="%s">%s</video></a>`, link, videoSrc, videoSrc)
174
168
}
175
169
default:
0 commit comments