Skip to content

Commit d868b92

Browse files
committed
fix
1 parent e6265cf commit d868b92

File tree

2 files changed

+14
-14
lines changed

2 files changed

+14
-14
lines changed

modules/markup/orgmode/orgmode.go

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -135,41 +135,33 @@ type Writer struct {
135135

136136
const 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
156148
func (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:

modules/markup/orgmode/orgmode_test.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,14 @@ func TestRender_Media(t *testing.T) {
8080
`<p><img src="https://example.com/example.svg" alt="https://example.com/example.svg" /></p>`)
8181
test("[[https://example.com/example.mp4]]",
8282
`<p><video src="https://example.com/example.mp4">https://example.com/example.mp4</video></p>`)
83+
84+
// test [[LINK][DESCRIPTION]] syntax with "file:" prefix
85+
test(`[[file:https://example.com/foo%20bar.svg][Goto Image]]`,
86+
`<p><a href="https://example.com/foo%20bar.svg">Goto Image</a></p>`)
87+
test(`[[file:https://example.com/link][https://example.com/image.jpg]]`,
88+
`<p><a href="https://example.com/link"><img src="https://example.com/image.jpg" alt="https://example.com/image.jpg" /></a></p>`)
89+
test(`[[file:https://example.com/link][file:https://example.com/image.jpg]]`,
90+
`<p><a href="https://example.com/link"><img src="https://example.com/image.jpg" alt="https://example.com/image.jpg" /></a></p>`)
8391
}
8492

8593
func TestRender_Source(t *testing.T) {

0 commit comments

Comments
 (0)