🎨 Improve minimum version requirements for marketplace packages https://github.com/siyuan-note/siyuan/issues/16688

Signed-off-by: Daniel <845765@qq.com>
This commit is contained in:
Daniel 2025-12-27 12:41:03 +08:00
parent c64e976419
commit 3f5c0762e8
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
6 changed files with 17 additions and 8 deletions

View file

@ -156,8 +156,9 @@ func InstalledIcons() (ret []*Icon) {
continue
}
installPath := filepath.Join(util.IconsPath, dirName)
icon.DisallowInstall = disallowInstallBazaarPackage(icon.Package)
installPath := filepath.Join(util.IconsPath, dirName)
icon.Installed = true
icon.RepoURL = icon.URL
icon.PreviewURL = "/appearance/icons/" + dirName + "/preview.png"

View file

@ -131,7 +131,7 @@ func Plugins(frontend string) (plugins []*Plugin) {
return
}
func ParseInstalledPlugin(name, frontend string) (found bool, displayName string, incompatible, disabledInPublish bool) {
func ParseInstalledPlugin(name, frontend string) (found bool, displayName string, incompatible, disabledInPublish, disallowInstall bool) {
pluginsPath := filepath.Join(util.DataDir, "plugins")
if !util.IsPathRegularDirOrSymlinkDir(pluginsPath) {
return
@ -161,6 +161,7 @@ func ParseInstalledPlugin(name, frontend string) (found bool, displayName string
displayName = GetPreferredName(plugin.Package)
incompatible = isIncompatiblePlugin(plugin, frontend)
disabledInPublish = plugin.DisabledInPublish
disallowInstall = disallowInstallBazaarPackage(plugin.Package)
}
return
}
@ -195,6 +196,8 @@ func InstalledPlugins(frontend string, checkUpdate bool) (ret []*Plugin) {
continue
}
plugin.DisallowInstall = disallowInstallBazaarPackage(plugin.Package)
installPath := filepath.Join(util.DataDir, "plugins", dirName)
plugin.Installed = true
plugin.RepoURL = plugin.URL

View file

@ -158,8 +158,9 @@ func InstalledTemplates() (ret []*Template) {
continue
}
installPath := filepath.Join(util.DataDir, "templates", dirName)
template.DisallowInstall = disallowInstallBazaarPackage(template.Package)
installPath := filepath.Join(util.DataDir, "templates", dirName)
template.Installed = true
template.RepoURL = template.URL
template.PreviewURL = "/templates/" + dirName + "/preview.png"

View file

@ -159,8 +159,9 @@ func InstalledThemes() (ret []*Theme) {
continue
}
installPath := filepath.Join(util.ThemesPath, dirName)
theme.DisallowInstall = disallowInstallBazaarPackage(theme.Package)
installPath := filepath.Join(util.ThemesPath, dirName)
theme.Installed = true
theme.RepoURL = theme.URL
theme.PreviewURL = "/appearance/themes/" + dirName + "/preview.png"

View file

@ -155,8 +155,9 @@ func InstalledWidgets() (ret []*Widget) {
continue
}
installPath := filepath.Join(util.DataDir, "widgets", dirName)
widget.DisallowInstall = disallowInstallBazaarPackage(widget.Package)
installPath := filepath.Join(util.DataDir, "widgets", dirName)
widget.Installed = true
widget.RepoURL = widget.URL
widget.PreviewURL = "/widgets/" + dirName + "/preview.png"

View file

@ -36,6 +36,7 @@ type Petal struct {
Enabled bool `json:"enabled"` // Whether enabled
Incompatible bool `json:"incompatible"` // Whether incompatible
DisabledInPublish bool `json:"disabledInPublish"` // Whether disabled in publish mode
DisallowInstall bool `json:"disallowInstall"` // Whether disallow install
JS string `json:"js"` // JS code
CSS string `json:"css"` // CSS code
@ -45,7 +46,7 @@ type Petal struct {
func SetPetalEnabled(name string, enabled bool, frontend string) (ret *Petal, err error) {
petals := getPetals()
found, displayName, incompatible, disabledInPublish := bazaar.ParseInstalledPlugin(name, frontend)
found, displayName, incompatible, disabledInPublish, disallowInstall := bazaar.ParseInstalledPlugin(name, frontend)
if !found {
logging.LogErrorf("plugin [%s] not found", name)
return
@ -62,6 +63,7 @@ func SetPetalEnabled(name string, enabled bool, frontend string) (ret *Petal, er
ret.Enabled = enabled
ret.Incompatible = incompatible
ret.DisabledInPublish = disabledInPublish
ret.DisallowInstall = disallowInstall
if incompatible {
err = fmt.Errorf(Conf.Language(205))
@ -100,8 +102,8 @@ func LoadPetals(frontend string, isPublish bool) (ret []*Petal) {
petals := getPetals()
for _, petal := range petals {
_, petal.DisplayName, petal.Incompatible, petal.DisabledInPublish = bazaar.ParseInstalledPlugin(petal.Name, frontend)
if !petal.Enabled || petal.Incompatible || (isPublish && petal.DisabledInPublish) {
_, petal.DisplayName, petal.Incompatible, petal.DisabledInPublish, petal.DisallowInstall = bazaar.ParseInstalledPlugin(petal.Name, frontend)
if !petal.Enabled || petal.Incompatible || (isPublish && petal.DisabledInPublish) || petal.DisallowInstall {
continue
}