mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-16 22:50:13 +01:00
🎨 The marketplace supports searching https://github.com/siyuan-note/siyuan/issues/8173
This commit is contained in:
parent
f5f66d25df
commit
7f16d32123
1 changed files with 56 additions and 80 deletions
|
|
@ -51,23 +51,12 @@ func BazaarPlugins(frontend, keyword string) (plugins []*bazaar.Plugin) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func filterPlugins(packages []*bazaar.Plugin, keyword string) (ret []*bazaar.Plugin) {
|
func filterPlugins(plugins []*bazaar.Plugin, keyword string) (ret []*bazaar.Plugin) {
|
||||||
ret = []*bazaar.Plugin{}
|
ret = []*bazaar.Plugin{}
|
||||||
keyword = strings.TrimSpace(keyword)
|
keywords := getSearchKeywords(keyword)
|
||||||
if "" == keyword {
|
for _, plugin := range plugins {
|
||||||
return packages
|
if matchPackage(keywords, plugin.Package) {
|
||||||
}
|
ret = append(ret, plugin)
|
||||||
|
|
||||||
for _, pkg := range packages {
|
|
||||||
if strings.Contains(pkg.DisplayName.Default, keyword) ||
|
|
||||||
strings.Contains(pkg.DisplayName.ZhCN, keyword) ||
|
|
||||||
strings.Contains(pkg.DisplayName.ZhCHT, keyword) ||
|
|
||||||
strings.Contains(pkg.DisplayName.EnUS, keyword) ||
|
|
||||||
strings.Contains(pkg.Description.Default, keyword) ||
|
|
||||||
strings.Contains(pkg.Description.ZhCN, keyword) ||
|
|
||||||
strings.Contains(pkg.Description.ZhCHT, keyword) ||
|
|
||||||
strings.Contains(pkg.Description.EnUS, keyword) {
|
|
||||||
ret = append(ret, pkg)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
|
|
@ -135,23 +124,12 @@ func BazaarWidgets(keyword string) (widgets []*bazaar.Widget) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func filterWidgets(packages []*bazaar.Widget, keyword string) (ret []*bazaar.Widget) {
|
func filterWidgets(widgets []*bazaar.Widget, keyword string) (ret []*bazaar.Widget) {
|
||||||
ret = []*bazaar.Widget{}
|
ret = []*bazaar.Widget{}
|
||||||
keyword = strings.TrimSpace(keyword)
|
keywords := getSearchKeywords(keyword)
|
||||||
if "" == keyword {
|
for _, w := range widgets {
|
||||||
return packages
|
if matchPackage(keywords, w.Package) {
|
||||||
}
|
ret = append(ret, w)
|
||||||
|
|
||||||
for _, pkg := range packages {
|
|
||||||
if strings.Contains(pkg.DisplayName.Default, keyword) ||
|
|
||||||
strings.Contains(pkg.DisplayName.ZhCN, keyword) ||
|
|
||||||
strings.Contains(pkg.DisplayName.ZhCHT, keyword) ||
|
|
||||||
strings.Contains(pkg.DisplayName.EnUS, keyword) ||
|
|
||||||
strings.Contains(pkg.Description.Default, keyword) ||
|
|
||||||
strings.Contains(pkg.Description.ZhCN, keyword) ||
|
|
||||||
strings.Contains(pkg.Description.ZhCHT, keyword) ||
|
|
||||||
strings.Contains(pkg.Description.EnUS, keyword) {
|
|
||||||
ret = append(ret, pkg)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
|
|
@ -199,23 +177,12 @@ func BazaarIcons(keyword string) (icons []*bazaar.Icon) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func filterIcons(packages []*bazaar.Icon, keyword string) (ret []*bazaar.Icon) {
|
func filterIcons(icons []*bazaar.Icon, keyword string) (ret []*bazaar.Icon) {
|
||||||
ret = []*bazaar.Icon{}
|
ret = []*bazaar.Icon{}
|
||||||
keyword = strings.TrimSpace(keyword)
|
keywords := getSearchKeywords(keyword)
|
||||||
if "" == keyword {
|
for _, i := range icons {
|
||||||
return packages
|
if matchPackage(keywords, i.Package) {
|
||||||
}
|
ret = append(ret, i)
|
||||||
|
|
||||||
for _, pkg := range packages {
|
|
||||||
if strings.Contains(pkg.DisplayName.Default, keyword) ||
|
|
||||||
strings.Contains(pkg.DisplayName.ZhCN, keyword) ||
|
|
||||||
strings.Contains(pkg.DisplayName.ZhCHT, keyword) ||
|
|
||||||
strings.Contains(pkg.DisplayName.EnUS, keyword) ||
|
|
||||||
strings.Contains(pkg.Description.Default, keyword) ||
|
|
||||||
strings.Contains(pkg.Description.ZhCN, keyword) ||
|
|
||||||
strings.Contains(pkg.Description.ZhCHT, keyword) ||
|
|
||||||
strings.Contains(pkg.Description.EnUS, keyword) {
|
|
||||||
ret = append(ret, pkg)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
|
|
@ -271,23 +238,12 @@ func BazaarThemes(keyword string) (ret []*bazaar.Theme) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func filterThemes(packages []*bazaar.Theme, keyword string) (ret []*bazaar.Theme) {
|
func filterThemes(themes []*bazaar.Theme, keyword string) (ret []*bazaar.Theme) {
|
||||||
ret = []*bazaar.Theme{}
|
ret = []*bazaar.Theme{}
|
||||||
keyword = strings.TrimSpace(keyword)
|
keywords := getSearchKeywords(keyword)
|
||||||
if "" == keyword {
|
for _, t := range themes {
|
||||||
return packages
|
if matchPackage(keywords, t.Package) {
|
||||||
}
|
ret = append(ret, t)
|
||||||
|
|
||||||
for _, pkg := range packages {
|
|
||||||
if strings.Contains(pkg.DisplayName.Default, keyword) ||
|
|
||||||
strings.Contains(pkg.DisplayName.ZhCN, keyword) ||
|
|
||||||
strings.Contains(pkg.DisplayName.ZhCHT, keyword) ||
|
|
||||||
strings.Contains(pkg.DisplayName.EnUS, keyword) ||
|
|
||||||
strings.Contains(pkg.Description.Default, keyword) ||
|
|
||||||
strings.Contains(pkg.Description.ZhCN, keyword) ||
|
|
||||||
strings.Contains(pkg.Description.ZhCHT, keyword) ||
|
|
||||||
strings.Contains(pkg.Description.EnUS, keyword) {
|
|
||||||
ret = append(ret, pkg)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
|
|
@ -355,23 +311,12 @@ func BazaarTemplates(keyword string) (templates []*bazaar.Template) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func filterTemplates(packages []*bazaar.Template, keyword string) (ret []*bazaar.Template) {
|
func filterTemplates(templates []*bazaar.Template, keyword string) (ret []*bazaar.Template) {
|
||||||
ret = []*bazaar.Template{}
|
ret = []*bazaar.Template{}
|
||||||
keyword = strings.TrimSpace(keyword)
|
keywords := getSearchKeywords(keyword)
|
||||||
if "" == keyword {
|
for _, t := range templates {
|
||||||
return packages
|
if matchPackage(keywords, t.Package) {
|
||||||
}
|
ret = append(ret, t)
|
||||||
|
|
||||||
for _, pkg := range packages {
|
|
||||||
if strings.Contains(pkg.DisplayName.Default, keyword) ||
|
|
||||||
strings.Contains(pkg.DisplayName.ZhCN, keyword) ||
|
|
||||||
strings.Contains(pkg.DisplayName.ZhCHT, keyword) ||
|
|
||||||
strings.Contains(pkg.DisplayName.EnUS, keyword) ||
|
|
||||||
strings.Contains(pkg.Description.Default, keyword) ||
|
|
||||||
strings.Contains(pkg.Description.ZhCN, keyword) ||
|
|
||||||
strings.Contains(pkg.Description.ZhCHT, keyword) ||
|
|
||||||
strings.Contains(pkg.Description.EnUS, keyword) {
|
|
||||||
ret = append(ret, pkg)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
|
|
@ -399,3 +344,34 @@ func UninstallBazaarTemplate(templateName string) error {
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func matchPackage(keywords []string, pkg *bazaar.Package) 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) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
func getSearchKeywords(query string) (ret []string) {
|
||||||
|
query = strings.TrimSpace(query)
|
||||||
|
if "" == query {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
keywords := strings.Split(query, " ")
|
||||||
|
for _, k := range keywords {
|
||||||
|
if "" != k {
|
||||||
|
ret = append(ret, strings.ToLower(k))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue