From 5117caca450c94bb1d1760f175d9e5720d88b510 Mon Sep 17 00:00:00 2001 From: Andrew Thornton Date: Sun, 21 Mar 2021 15:45:04 +0000 Subject: [PATCH 1/3] Links in markdown should be absolute to the repository not the server Fix #15075 Signed-off-by: Andrew Thornton --- modules/markup/markdown/goldmark.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/markup/markdown/goldmark.go b/modules/markup/markdown/goldmark.go index 07e2e36e1da4..ac30893006ef 100644 --- a/modules/markup/markdown/goldmark.go +++ b/modules/markup/markdown/goldmark.go @@ -7,6 +7,7 @@ package markdown import ( "bytes" "fmt" + "path" "regexp" "strings" @@ -99,6 +100,8 @@ func (g *ASTTransformer) Transform(node *ast.Document, reader text.Reader, pc pa prefix = strings.Replace(prefix, "/src/", "/media/", 1) lnk := string(link) + lnk = path.Clean("/" + lnk)[1:] + lnk = giteautil.URLJoin(prefix, lnk) link = []byte(lnk) } From 2da4391980097276d6824a3dcab9f0a8abf65c27 Mon Sep 17 00:00:00 2001 From: Andrew Thornton Date: Thu, 25 Mar 2021 19:44:24 +0000 Subject: [PATCH 2/3] match github Signed-off-by: Andrew Thornton --- modules/markup/markdown/goldmark.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/modules/markup/markdown/goldmark.go b/modules/markup/markdown/goldmark.go index ac30893006ef..ad77177db439 100644 --- a/modules/markup/markdown/goldmark.go +++ b/modules/markup/markdown/goldmark.go @@ -7,7 +7,6 @@ package markdown import ( "bytes" "fmt" - "path" "regexp" "strings" @@ -99,8 +98,7 @@ func (g *ASTTransformer) Transform(node *ast.Document, reader text.Reader, pc pa } prefix = strings.Replace(prefix, "/src/", "/media/", 1) - lnk := string(link) - lnk = path.Clean("/" + lnk)[1:] + lnk := strings.TrimLeft(string(link), "/") lnk = giteautil.URLJoin(prefix, lnk) link = []byte(lnk) From 8c313651315c0df9063a4cd985353ad877a3fd91 Mon Sep 17 00:00:00 2001 From: Andrew Thornton Date: Thu, 25 Mar 2021 19:58:38 +0000 Subject: [PATCH 3/3] add testcase Signed-off-by: Andrew Thornton --- modules/markup/markdown/markdown_test.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/modules/markup/markdown/markdown_test.go b/modules/markup/markdown/markdown_test.go index 5b3ef21fb66b..0e340763aedd 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+")", `

`+title+`

`) + + url = "/../../.images/src/02/train.jpg" + test( + "!["+title+"]("+url+")", + `

`+title+`

`) + + test( + "[["+title+"|"+url+"]]", + `

`+title+`

`) + test( + "[!["+title+"]("+url+")]("+href+")", + `

`+title+`

`) + } func testAnswers(baseURLContent, baseURLImages string) []string {