🎨 集市支持已安装的包单独显示 https://github.com/siyuan-note/siyuan/issues/5678

This commit is contained in:
Liang Ding 2022-09-02 11:03:10 +08:00
parent 0f13f79ce4
commit bb0995eb6b
No known key found for this signature in database
GPG key ID: 136F30F901A2231D
5 changed files with 23 additions and 19 deletions

View file

@ -96,7 +96,7 @@ func Icons() (icons []*Icon) {
func InstalledIcons() (ret []*Icon) {
ret = []*Icon{}
dir, err := os.Open(filepath.Join(util.AppearancePath, "icons"))
dir, err := os.Open(util.IconsPath)
if nil != err {
logging.LogWarnf("open icons folder failed: %s", err)
return
@ -137,14 +137,14 @@ func InstalledIcons() (ret []*Icon) {
icon.Size = iconDir.Size()
icon.HSize = humanize.Bytes(uint64(icon.Size))
icon.HUpdated = formatUpdated(icon.Updated)
readme, readErr := os.ReadFile(filepath.Join(util.AppearancePath, "icons", dirName, "README.md"))
readme, readErr := os.ReadFile(filepath.Join(util.IconsPath, dirName, "README.md"))
if nil != readErr {
logging.LogWarnf("read install icon README.md failed: %s", readErr)
continue
}
icon.README, _ = renderREADME(icon.URL, readme)
icon.Outdated = isOutdatedIcon(icon.URL, icon.Version, bazaarIcons)
icon.Outdated = isOutdatedIcon(icon, bazaarIcons)
ret = append(ret, icon)
}
return

View file

@ -85,7 +85,7 @@ func WidgetJSON(widgetDirName string) (ret map[string]interface{}, err error) {
}
func IconJSON(iconDirName string) (ret map[string]interface{}, err error) {
p := filepath.Join(util.AppearancePath, "icons", iconDirName, "icon.json")
p := filepath.Join(util.IconsPath, iconDirName, "icon.json")
if !gulu.File.IsExist(p) {
err = os.ErrNotExist
return
@ -172,52 +172,56 @@ func getPkgIndex(pkgType string) (ret map[string]interface{}, err error) {
return
}
func isOutdatedTheme(fullURL, version string, bazaarThemes []*Theme) bool {
if !strings.HasPrefix(fullURL, "https://github.com/") {
func isOutdatedTheme(theme *Theme, bazaarThemes []*Theme) bool {
if !strings.HasPrefix(theme.URL, "https://github.com/") {
return false
}
for _, pkg := range bazaarThemes {
if fullURL == pkg.URL && version != pkg.Version {
if theme.URL == pkg.URL && theme.Version != pkg.Version {
theme.RepoHash = pkg.RepoHash
return true
}
}
return false
}
func isOutdatedIcon(fullURL, version string, bazaarIcons []*Icon) bool {
if !strings.HasPrefix(fullURL, "https://github.com/") {
func isOutdatedIcon(icon *Icon, bazaarIcons []*Icon) bool {
if !strings.HasPrefix(icon.URL, "https://github.com/") {
return false
}
for _, pkg := range bazaarIcons {
if fullURL == pkg.URL && version != pkg.Version {
if icon.URL == pkg.URL && icon.Version != pkg.Version {
icon.RepoHash = pkg.RepoHash
return true
}
}
return false
}
func isOutdatedWidget(fullURL, version string, bazaarWidgets []*Widget) bool {
if !strings.HasPrefix(fullURL, "https://github.com/") {
func isOutdatedWidget(widget *Widget, bazaarWidgets []*Widget) bool {
if !strings.HasPrefix(widget.URL, "https://github.com/") {
return false
}
for _, pkg := range bazaarWidgets {
if fullURL == pkg.URL && version != pkg.Version {
if widget.URL == pkg.URL && widget.Version != pkg.Version {
widget.RepoHash = pkg.RepoHash
return true
}
}
return false
}
func isOutdatedTemplate(fullURL, version string, bazaarTemplates []*Template) bool {
if !strings.HasPrefix(fullURL, "https://github.com/") {
func isOutdatedTemplate(template *Template, bazaarTemplates []*Template) bool {
if !strings.HasPrefix(template.URL, "https://github.com/") {
return false
}
for _, pkg := range bazaarTemplates {
if fullURL == pkg.URL && version != pkg.Version {
if template.URL == pkg.URL && template.Version != pkg.Version {
template.RepoHash = pkg.RepoHash
return true
}
}

View file

@ -143,7 +143,7 @@ func InstalledTemplates() (ret []*Template) {
continue
}
template.README, _ = renderREADME(template.URL, readme)
template.Outdated = isOutdatedTemplate(template.URL, template.Version, bazaarTemplates)
template.Outdated = isOutdatedTemplate(template, bazaarTemplates)
ret = append(ret, template)
}
return

View file

@ -146,7 +146,7 @@ func InstalledThemes() (ret []*Theme) {
continue
}
theme.README, _ = renderREADME(theme.URL, readme)
theme.Outdated = isOutdatedTheme(theme.URL, theme.Version, bazaarThemes)
theme.Outdated = isOutdatedTheme(theme, bazaarThemes)
ret = append(ret, theme)
}
return

View file

@ -141,7 +141,7 @@ func InstalledWidgets() (ret []*Widget) {
continue
}
widget.README, _ = renderREADME(widget.URL, readme)
widget.Outdated = isOutdatedWidget(widget.URL, widget.Version, bazaarWidgets)
widget.Outdated = isOutdatedWidget(widget, bazaarWidgets)
ret = append(ret, widget)
}
return