diff options
author | zeripath <art27@cantab.net> | 2021-04-10 17:26:28 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-11 00:26:28 +0800 |
commit | c680eb2cc74823f017f5ad5a4c9e8094cde311f4 (patch) | |
tree | 3da6565c502b958292a61b1f3272fa7ef51d3b2d /modules/markup/markdown | |
parent | 84f5a0bc62568b6d0a67969e460f4d41339a07d6 (diff) | |
download | gitea-c680eb2cc74823f017f5ad5a4c9e8094cde311f4.tar.gz gitea-c680eb2cc74823f017f5ad5a4c9e8094cde311f4.zip |
Links in markdown should be absolute to the repository not the server (#15088)
* Links in markdown should be absolute to the repository not the server
Fix #15075
Signed-off-by: Andrew Thornton <art27@cantab.net>
* match github
Signed-off-by: Andrew Thornton <art27@cantab.net>
* add testcase
Signed-off-by: Andrew Thornton <art27@cantab.net>
Co-authored-by: 6543 <6543@obermui.de>
Diffstat (limited to 'modules/markup/markdown')
-rw-r--r-- | modules/markup/markdown/goldmark.go | 3 | ||||
-rw-r--r-- | modules/markup/markdown/markdown_test.go | 13 |
2 files changed, 15 insertions, 1 deletions
diff --git a/modules/markup/markdown/goldmark.go b/modules/markup/markdown/goldmark.go index 07e2e36e1d..ad77177db4 100644 --- a/modules/markup/markdown/goldmark.go +++ b/modules/markup/markdown/goldmark.go @@ -98,7 +98,8 @@ func (g *ASTTransformer) Transform(node *ast.Document, reader text.Reader, pc pa } prefix = strings.Replace(prefix, "/src/", "/media/", 1) - lnk := string(link) + lnk := strings.TrimLeft(string(link), "/") + lnk = giteautil.URLJoin(prefix, lnk) link = []byte(lnk) } diff --git a/modules/markup/markdown/markdown_test.go b/modules/markup/markdown/markdown_test.go index 5b3ef21fb6..0e340763ae 100644 --- a/modules/markup/markdown/markdown_test.go +++ b/modules/markup/markdown/markdown_test.go @@ -93,6 +93,19 @@ func TestRender_Images(t *testing.T) { test( "[!["+title+"]("+url+")]("+href+")", `<p><a href="`+href+`" rel="nofollow"><img src="`+result+`" alt="`+title+`"/></a></p>`) + + url = "/../../.images/src/02/train.jpg" + test( + "!["+title+"]("+url+")", + `<p><a href="`+result+`" rel="nofollow"><img src="`+result+`" alt="`+title+`"/></a></p>`) + + test( + "[["+title+"|"+url+"]]", + `<p><a href="`+result+`" rel="nofollow"><img src="`+result+`" title="`+title+`" alt="`+title+`"/></a></p>`) + test( + "[!["+title+"]("+url+")]("+href+")", + `<p><a href="`+href+`" rel="nofollow"><img src="`+result+`" alt="`+title+`"/></a></p>`) + } func testAnswers(baseURLContent, baseURLImages string) []string { |