|
|
@ -55,7 +55,7 @@ var ( |
|
|
|
anySHA1Pattern = regexp.MustCompile(`https?://(?:\S+/){4,5}([0-9a-f]{40})(/[-+~_%.a-zA-Z0-9/]+)?(#[-+~_%.a-zA-Z0-9]+)?`) |
|
|
|
anySHA1Pattern = regexp.MustCompile(`https?://(?:\S+/){4,5}([0-9a-f]{40})(/[-+~_%.a-zA-Z0-9/]+)?(#[-+~_%.a-zA-Z0-9]+)?`) |
|
|
|
|
|
|
|
|
|
|
|
// comparePattern matches "http://domain/org/repo/compare/COMMIT1...COMMIT2#hash"
|
|
|
|
// comparePattern matches "http://domain/org/repo/compare/COMMIT1...COMMIT2#hash"
|
|
|
|
comparePattern = regexp.MustCompile(`https?://(?:\S+/){4,5}([0-9a-f]{40})(\.\.\.?)([0-9a-f]{40})?(#[-+~_%.a-zA-Z0-9]+)?`) |
|
|
|
comparePattern = regexp.MustCompile(`https?://(?:\S+/){4,5}([0-9a-f]{7,40})(\.\.\.?)([0-9a-f]{7,40})?(#[-+~_%.a-zA-Z0-9]+)?`) |
|
|
|
|
|
|
|
|
|
|
|
validLinksPattern = regexp.MustCompile(`^[a-z][\w-]+://`) |
|
|
|
validLinksPattern = regexp.MustCompile(`^[a-z][\w-]+://`) |
|
|
|
|
|
|
|
|
|
|
@ -944,6 +944,13 @@ func comparePatternProcessor(ctx *RenderContext, node *html.Node) { |
|
|
|
return |
|
|
|
return |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Ensure that every group (m[0]...m[7]) has a match
|
|
|
|
|
|
|
|
for i := 0; i < 8; i++ { |
|
|
|
|
|
|
|
if m[i] == -1 { |
|
|
|
|
|
|
|
return |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
urlFull := node.Data[m[0]:m[1]] |
|
|
|
urlFull := node.Data[m[0]:m[1]] |
|
|
|
text1 := base.ShortSha(node.Data[m[2]:m[3]]) |
|
|
|
text1 := base.ShortSha(node.Data[m[2]:m[3]]) |
|
|
|
textDots := base.ShortSha(node.Data[m[4]:m[5]]) |
|
|
|
textDots := base.ShortSha(node.Data[m[4]:m[5]]) |
|
|
|