2024-11-04 18:59:50 +08:00
|
|
|
// Copyright 2024 The Gitea Authors. All rights reserved.
|
|
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
|
|
|
|
package markup
|
|
|
|
|
|
|
|
import "golang.org/x/net/html"
|
|
|
|
|
|
|
|
// emailAddressProcessor replaces raw email addresses with a mailto: link.
|
|
|
|
func emailAddressProcessor(ctx *RenderContext, node *html.Node) {
|
|
|
|
next := node.NextSibling
|
|
|
|
for node != nil && node != next {
|
2024-11-16 16:41:44 +08:00
|
|
|
m := globalVars().emailRegex.FindStringSubmatchIndex(node.Data)
|
2024-11-04 18:59:50 +08:00
|
|
|
if m == nil {
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
mail := node.Data[m[2]:m[3]]
|
2024-11-18 13:25:42 +08:00
|
|
|
replaceContent(node, m[2], m[3], createLink(ctx, "mailto:"+mail, mail, "" /*mailto*/))
|
2024-11-04 18:59:50 +08:00
|
|
|
node = node.NextSibling.NextSibling
|
|
|
|
}
|
|
|
|
}
|