2024-11-04 03:59:50 -07: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 01:41:44 -07:00
|
|
|
m := globalVars().emailRegex.FindStringSubmatchIndex(node.Data)
|
2024-11-04 03:59:50 -07:00
|
|
|
if m == nil {
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
mail := node.Data[m[2]:m[3]]
|
2024-11-17 22:25:42 -07:00
|
|
|
replaceContent(node, m[2], m[3], createLink(ctx, "mailto:"+mail, mail, "" /*mailto*/))
|
2024-11-04 03:59:50 -07:00
|
|
|
node = node.NextSibling.NextSibling
|
|
|
|
}
|
|
|
|
}
|