mirror of
https://github.com/siyuan-note/siyuan.git
synced 2026-03-03 19:30:16 +01:00
♻️ Bazaar uses a map to replace the i18n struct (#16960)
- package.go:DisplayName/Description/Readme 改为 map[string]string,统一 getPreferredLocaleString - bazzar.go:搜索匹配适配 LocaleStrings,抽出 packageContainsKeyword - bazaar.ts:keyword 仅在有值时传入 API - appearance:主题「默认主题」与 displayName 改为多语言 key 与 map 取值
This commit is contained in:
parent
cc37ec4030
commit
9642f486bd
19 changed files with 127 additions and 388 deletions
|
|
@ -514,34 +514,41 @@ func matchPackage(keywords []string, pkg *bazaar.Package) bool {
|
|||
return true
|
||||
}
|
||||
|
||||
if nil == pkg || nil == pkg.DisplayName || nil == pkg.Description {
|
||||
if nil == pkg {
|
||||
return false
|
||||
}
|
||||
|
||||
hits := map[string]bool{}
|
||||
for _, keyword := range keywords {
|
||||
if strings.Contains(strings.ToLower(pkg.DisplayName.Default), keyword) ||
|
||||
strings.Contains(strings.ToLower(pkg.DisplayName.ZhCN), keyword) ||
|
||||
strings.Contains(strings.ToLower(pkg.DisplayName.ZhCHT), keyword) ||
|
||||
strings.Contains(strings.ToLower(pkg.DisplayName.EnUS), keyword) ||
|
||||
strings.Contains(strings.ToLower(pkg.Description.Default), keyword) ||
|
||||
strings.Contains(strings.ToLower(pkg.Description.ZhCN), keyword) ||
|
||||
strings.Contains(strings.ToLower(pkg.Description.ZhCHT), keyword) ||
|
||||
strings.Contains(strings.ToLower(pkg.Description.EnUS), keyword) ||
|
||||
strings.Contains(strings.ToLower(path.Base(pkg.RepoURL)), keyword) ||
|
||||
strings.Contains(strings.ToLower(pkg.Author), keyword) {
|
||||
hits[keyword] = true
|
||||
continue
|
||||
}
|
||||
|
||||
for _, pkgKeyword := range pkg.Keywords {
|
||||
if strings.Contains(strings.ToLower(pkgKeyword), keyword) {
|
||||
hits[keyword] = true
|
||||
break
|
||||
}
|
||||
for _, kw := range keywords {
|
||||
if !packageContainsKeyword(pkg, kw) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return len(hits) == len(keywords)
|
||||
|
||||
// 全部关键词匹配
|
||||
return true
|
||||
}
|
||||
|
||||
func packageContainsKeyword(pkg *bazaar.Package, kw string) bool {
|
||||
if strings.Contains(strings.ToLower(path.Base(pkg.RepoURL)), kw) ||
|
||||
strings.Contains(strings.ToLower(pkg.Author), kw) {
|
||||
return true
|
||||
}
|
||||
for _, s := range pkg.DisplayName {
|
||||
if strings.Contains(strings.ToLower(s), kw) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
for _, s := range pkg.Description {
|
||||
if strings.Contains(strings.ToLower(s), kw) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
for _, s := range pkg.Keywords {
|
||||
if strings.Contains(strings.ToLower(s), kw) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func getSearchKeywords(query string) (ret []string) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue