PLT-7474 Stopped requiring confirmation for mentions in code blocks (#7375)
* PLT-7474 Stopped requiring confirmation for mentions in code blocks * Stopped mentioning people from code blocks using ~~~
Этот коммит содержится в:
коммит произвёл
Saturnino Abril
родитель
daed8ffbf6
Коммит
575864c917
@@ -839,14 +839,14 @@ func GetExplicitMentions(message string, keywords map[string][]string) (map[stri
|
||||
|
||||
// Matches a line containing only ``` and a potential language definition, any number of lines not containing ```,
|
||||
// and then either a line containing only ``` or the end of the text
|
||||
var codeBlockPattern = regexp.MustCompile("(?m)^[^\\S\n]*\\`\\`\\`.*$[\\s\\S]+?(^[^\\S\n]*\\`\\`\\`$|\\z)")
|
||||
var codeBlockPattern = regexp.MustCompile("(?m)^[^\\S\n]*[\\`~]{3}.*$[\\s\\S]+?(^[^\\S\n]*[`~]{3}$|\\z)")
|
||||
|
||||
// Matches a backquote, either some text or any number of non-empty lines, and then a final backquote
|
||||
var inlineCodePattern = regexp.MustCompile("(?m)\\`+(?:.+?|.*?\n(.*?\\S.*?\n)*.*?)\\`+")
|
||||
|
||||
// Strips pre-formatted text and code blocks from a Markdown string by replacing them with whitespace
|
||||
func removeCodeFromMessage(message string) string {
|
||||
if strings.Contains(message, "```") {
|
||||
if strings.Contains(message, "```") || strings.Contains(message, "~~~") {
|
||||
message = codeBlockPattern.ReplaceAllString(message, "")
|
||||
}
|
||||
|
||||
|
||||
@@ -399,6 +399,12 @@ func TestRemoveCodeFromMessage(t *testing.T) {
|
||||
if actual := removeCodeFromMessage(input); actual != expected {
|
||||
t.Fatalf("received incorrect output\n\nGot:\n%v\n\nExpected:\n%v\n", actual, expected)
|
||||
}
|
||||
|
||||
input = "this is text with\n~~~\na code block\n~~~\nin it"
|
||||
expected = "this is text with\n\nin it"
|
||||
if actual := removeCodeFromMessage(input); actual != expected {
|
||||
t.Fatalf("received incorrect output\n\nGot:\n%v\n\nExpected:\n%v\n", actual, expected)
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetMentionKeywords(t *testing.T) {
|
||||
|
||||
Ссылка в новой задаче
Block a user