fix(url): keep capitalized mailto: and tel: links as they are (#7052)

EnsureURLScheme matched the mailto: and tel: prefixes case-sensitively, so a support link typed as Mailto: or TEL: (phone keyboards capitalize the first letter) got https:// prepended and opened a broken web page. URL schemes are case-insensitive, and the check now is too.
This commit is contained in:
kevin
2026-11-02 23:22:43 +09:00
committed by GitHub
parent 6d9e836d61
commit 77b56a2178
2 changed files with 7 additions and 2 deletions
+5 -2
View File
@@ -16,9 +16,12 @@ func EnsureURLScheme(raw string) string {
if trimmed == "" {
return ""
}
// Schemes are case-insensitive (RFC 3986), and phone keyboards often
// capitalize the first letter ("Mailto:", "Tel:").
lower := strings.ToLower(trimmed)
if strings.Contains(trimmed, "://") ||
strings.HasPrefix(trimmed, "mailto:") ||
strings.HasPrefix(trimmed, "tel:") {
strings.HasPrefix(lower, "mailto:") ||
strings.HasPrefix(lower, "tel:") {
return trimmed
}
return "https://" + trimmed