mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-28 01:22:57 +00:00
fix: apply docs sweep updates
This commit is contained in:
@@ -325,17 +325,24 @@ func (ri *routeIndex) localizeURL(raw string) string {
|
||||
|
||||
func hasURLScheme(raw string) bool {
|
||||
switch {
|
||||
case strings.HasPrefix(raw, "http://"), strings.HasPrefix(raw, "https://"):
|
||||
case hasSchemePrefix(raw, "http://"), hasSchemePrefix(raw, "https://"):
|
||||
return true
|
||||
case strings.HasPrefix(raw, "mailto:"), strings.HasPrefix(raw, "tel:"):
|
||||
case hasSchemePrefix(raw, "mailto:"), hasSchemePrefix(raw, "tel:"):
|
||||
return true
|
||||
case strings.HasPrefix(raw, "data:"), strings.HasPrefix(raw, "javascript:"):
|
||||
case hasSchemePrefix(raw, "data:"), hasSchemePrefix(raw, "javascript:"), hasSchemePrefix(raw, "vbscript:"):
|
||||
return true
|
||||
default:
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
func hasSchemePrefix(raw, prefix string) bool {
|
||||
if len(raw) < len(prefix) {
|
||||
return false
|
||||
}
|
||||
return strings.EqualFold(raw[:len(prefix)], prefix)
|
||||
}
|
||||
|
||||
func splitURLSuffix(raw string) (string, string) {
|
||||
index := strings.IndexAny(raw, "?#")
|
||||
if index == -1 {
|
||||
|
||||
@@ -49,6 +49,16 @@ func TestLocalizeBodyLinks(t *testing.T) {
|
||||
input: `See [Config](/zh-CN/gateway/configuration).`,
|
||||
want: `See [Config](/zh-CN/gateway/configuration).`,
|
||||
},
|
||||
{
|
||||
name: "vbscript scheme stays unchanged",
|
||||
input: `<a href="vbscript:msgbox(1)">bad</a>`,
|
||||
want: `<a href="vbscript:msgbox(1)">bad</a>`,
|
||||
},
|
||||
{
|
||||
name: "mixed-case javascript scheme stays unchanged",
|
||||
input: `<a href="Javascript:alert(1)">bad</a>`,
|
||||
want: `<a href="Javascript:alert(1)">bad</a>`,
|
||||
},
|
||||
{
|
||||
name: "missing localized page stays unchanged",
|
||||
input: `See [FAQ](/help/faq).`,
|
||||
|
||||
Reference in New Issue
Block a user