Skip to content

Commit 35a4dd4

Browse files
committed
fix
1 parent e6265cf commit 35a4dd4

File tree

2 files changed

+15
-12
lines changed

2 files changed

+15
-12
lines changed

modules/markup/orgmode/orgmode.go

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -135,41 +135,35 @@ 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" {
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
156150
func (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:

modules/markup/orgmode/orgmode_test.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,15 @@ 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>`)
91+
8392
}
8493

8594
func TestRender_Source(t *testing.T) {

0 commit comments

Comments
 (0)