aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Kuhn <suraia@ikkoku.de>2017-08-05 23:52:19 +0200
committerLauris BH <lauris@nix.lv>2017-08-06 00:52:19 +0300
commitd05150a3317766863586b3a5b2a6a09feab3dd8c (patch)
treea9288ba289ff40d6892c22a709c2125c2bfd7f89
parenta3262636b87477b22e37cdbd562f260b4c4a8c25 (diff)
downloadgitea-d05150a3317766863586b3a5b2a6a09feab3dd8c.tar.gz
gitea-d05150a3317766863586b3a5b2a6a09feab3dd8c.zip
Make short link pattern greedy (#2259)
Multiple links on the same line are currently not recognized correctly.
-rw-r--r--modules/markdown/markdown.go2
-rw-r--r--modules/markdown/markdown_test.go6
2 files changed, 7 insertions, 1 deletions
diff --git a/modules/markdown/markdown.go b/modules/markdown/markdown.go
index bebf454ff1..898df59292 100644
--- a/modules/markdown/markdown.go
+++ b/modules/markdown/markdown.go
@@ -64,7 +64,7 @@ var (
Sha1CurrentPattern = regexp.MustCompile(`(?:^|\s|\()([0-9a-f]{7,40})\b`)
// ShortLinkPattern matches short but difficult to parse [[name|link|arg=test]] syntax
- ShortLinkPattern = regexp.MustCompile(`(\[\[.*\]\]\w*)`)
+ ShortLinkPattern = regexp.MustCompile(`(\[\[.*?\]\]\w*)`)
// AnySHA1Pattern allows to split url containing SHA into parts
AnySHA1Pattern = regexp.MustCompile(`(http\S*)://(\S+)/(\S+)/(\S+)/(\S+)/([0-9a-f]{40})(?:/?([^#\s]+)?(?:#(\S+))?)?`)
diff --git a/modules/markdown/markdown_test.go b/modules/markdown/markdown_test.go
index 2943ffde95..cfe9c5421a 100644
--- a/modules/markdown/markdown_test.go
+++ b/modules/markdown/markdown_test.go
@@ -260,8 +260,10 @@ func TestRender_ShortLinks(t *testing.T) {
rawtree := URLJoin(AppSubURL, "raw", "master")
url := URLJoin(tree, "Link")
+ otherUrl := URLJoin(tree, "OtherLink")
imgurl := URLJoin(rawtree, "Link.jpg")
urlWiki := URLJoin(AppSubURL, "wiki", "Link")
+ otherUrlWiki := URLJoin(AppSubURL, "wiki", "OtherLink")
imgurlWiki := URLJoin(AppSubURL, "wiki", "raw", "Link.jpg")
favicon := "http://google.com/favicon.ico"
@@ -301,6 +303,10 @@ func TestRender_ShortLinks(t *testing.T) {
"[[Name|Link.jpg|alt=\"AltName\"|title='Title']]",
`<p><a href="`+imgurl+`" rel="nofollow"><img src="`+imgurl+`" alt="AltName" title="Title"/></a></p>`,
`<p><a href="`+imgurlWiki+`" rel="nofollow"><img src="`+imgurlWiki+`" alt="AltName" title="Title"/></a></p>`)
+ test(
+ "[[Link]] [[OtherLink]]",
+ `<p><a href="`+url+`" rel="nofollow">Link</a> <a href="`+otherUrl+`" rel="nofollow">OtherLink</a></p>`,
+ `<p><a href="`+urlWiki+`" rel="nofollow">Link</a> <a href="`+otherUrlWiki+`" rel="nofollow">OtherLink</a></p>`)
}
func TestRender_Commits(t *testing.T) {