diff options
author | charles <30816317+charles7668@users.noreply.github.com> | 2024-03-02 10:54:46 +0100 |
---|---|---|
committer | Earl Warren <contact@earl-warren.org> | 2024-03-06 05:10:45 +0100 |
commit | 5241a45cf880487f456062cefbddcc2519c3354d (patch) | |
tree | 05b02a5bc70f0e5a3c86d3efb2a57e185a845888 | |
parent | Remove jQuery AJAX from the repo tag edit form (#29526) (diff) | |
download | forgejo-5241a45cf880487f456062cefbddcc2519c3354d.tar.xz forgejo-5241a45cf880487f456062cefbddcc2519c3354d.zip |
Fix issue link does not support quotes (#29484) (#29487)
Close #29484
![圖片](https://github.com/go-gitea/gitea/assets/30816317/b27e6e16-67e0-469c-8e04-30180c585890)
(cherry picked from commit 90435847792d26ac3f23f1a8479706afadec6b15)
-rw-r--r-- | modules/references/references.go | 4 | ||||
-rw-r--r-- | modules/references/references_test.go | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/modules/references/references.go b/modules/references/references.go index fce893cf5b..fd10992e8e 100644 --- a/modules/references/references.go +++ b/modules/references/references.go @@ -31,9 +31,9 @@ var ( // mentionPattern matches all mentions in the form of "@user" or "@org/team" mentionPattern = regexp.MustCompile(`(?:\s|^|\(|\[)(@[0-9a-zA-Z-_]+|@[0-9a-zA-Z-_]+\/?[0-9a-zA-Z-_]+|@[0-9a-zA-Z-_][0-9a-zA-Z-_.]+\/?[0-9a-zA-Z-_.]+[0-9a-zA-Z-_])(?:'|\s|[:,;.?!]\s|[:,;.?!]?$|\)|\])`) // issueNumericPattern matches string that references to a numeric issue, e.g. #1287 - issueNumericPattern = regexp.MustCompile(`(?:\s|^|\(|\[|\')([#!][0-9]+)(?:\s|$|\)|\]|[:;,.?!]\s|[:;,.?!]$)`) + issueNumericPattern = regexp.MustCompile(`(?:\s|^|\(|\[|\'|\")([#!][0-9]+)(?:\s|$|\)|\]|\'|\"|[:;,.?!]\s|[:;,.?!]$)`) // issueAlphanumericPattern matches string that references to an alphanumeric issue, e.g. ABC-1234 - issueAlphanumericPattern = regexp.MustCompile(`(?:\s|^|\(|\[)([A-Z]{1,10}-[1-9][0-9]*)(?:\s|$|\)|\]|:|\.(\s|$))`) + issueAlphanumericPattern = regexp.MustCompile(`(?:\s|^|\(|\[|\"|\')([A-Z]{1,10}-[1-9][0-9]*)(?:\s|$|\)|\]|:|\.(\s|$)|\"|\')`) // crossReferenceIssueNumericPattern matches string that references a numeric issue in a different repository // e.g. org/repo#12345 crossReferenceIssueNumericPattern = regexp.MustCompile(`(?:\s|^|\(|\[)([0-9a-zA-Z-_\.]+/[0-9a-zA-Z-_\.]+[#!][0-9]+)(?:\s|$|\)|\]|[:;,.?!]\s|[:;,.?!]$)`) diff --git a/modules/references/references_test.go b/modules/references/references_test.go index 3f1f52401a..498374b2a7 100644 --- a/modules/references/references_test.go +++ b/modules/references/references_test.go @@ -432,6 +432,8 @@ func TestRegExp_issueNumericPattern(t *testing.T) { " #12", "#12:", "ref: #12: msg", + "\"#1234\"", + "'#1234'", } falseTestCases := []string{ "# 1234", @@ -462,6 +464,8 @@ func TestRegExp_issueAlphanumericPattern(t *testing.T) { "(ABC-123)", "[ABC-123]", "ABC-123:", + "\"ABC-123\"", + "'ABC-123'", } falseTestCases := []string{ "RC-08", |