Browse Source

Реализован более трудный случай, когда в названии доверительного свойства есть пробел #65

трудность в том, что нужно учесть это в URL.
Сделать путём регулярных выражений НЕ получилось.
Т.к. непонятно, как сделать глобальную замену содержимого обратных ссылок.
pull/120/head
Artur Galyamov 2 years ago
parent
commit
da59f8af8d
  1. 29
      routers/web/repo/resource.go

29
routers/web/repo/resource.go

@ -4,7 +4,6 @@ import (
"code.gitea.io/gitea/modules/base" "code.gitea.io/gitea/modules/base"
"code.gitea.io/gitea/modules/context" "code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/routers/web/user" "code.gitea.io/gitea/routers/web/user"
"errors"
"fmt" "fmt"
"net/http" "net/http"
"regexp" "regexp"
@ -41,15 +40,29 @@ func GetRenderedResourcesWithSearchLinks(ctx *context.Context, repo interface{},
return "", err return "", err
} }
resourceSubstitutionPattern := fmt.Sprintf(`- \[ \] $1 [найти](/explore/%s?tab=&q=$1)`, strings.ToLower(fieldName)) resourceNamesMatches := regExp.FindAllStringSubmatch(resources, -1)
resourcesWithLinks := regExp.ReplaceAll([]byte(resources), []byte(resourceSubstitutionPattern)) if resourceNamesMatches == nil {
return "", err
}
var resourcesWithSafeURLs = strings.Clone(resources)
var resourceName string
var searchQS string
for _, matches := range resourceNamesMatches {
resourceName = matches[1]
searchQS = strings.ReplaceAll(resourceName, " ", "+")
resourceSubstitutionPattern := fmt.Sprintf(
`- \[ \] %s [найти](/explore/%s?tab=&q=%s)`,
resourceName,
strings.ToLower(fieldName),
searchQS)
if resourcesWithLinks == nil { resourcesWithSafeURLs = strings.Replace(resourcesWithSafeURLs, resourceName, resourceSubstitutionPattern, -1)
return "", errors.New("not found matches in resources")
} }
var renderedResourcesWithLinks string var renderedResourcesWithSafeURLs string
renderedResourcesWithLinks, err = user.GetRenderedTextFieldByValue(ctx, repo, string(resourcesWithLinks)) renderedResourcesWithSafeURLs, err = user.GetRenderedTextFieldByValue(ctx, repo, resourcesWithSafeURLs)
return renderedResourcesWithLinks, err return renderedResourcesWithSafeURLs, err
} }

Loading…
Cancel
Save