This commit is contained in:
Liang Ding 2023-05-05 23:28:50 +08:00
parent a219cf52f5
commit 2d559a943d
No known key found for this signature in database
GPG key ID: 136F30F901A2231D
4 changed files with 49 additions and 6 deletions

View file

@ -376,6 +376,7 @@ export const bazaar = {
fetchPost("/api/bazaar/getBazaarPackageREAME", {
repoURL: data.repoURL,
repoHash: data.repoHash,
packageType: bazaarType
}, response => {
const mdElement = readmeElement.querySelector(".item__readme");
mdElement.innerHTML = response.data.html;

View file

@ -36,8 +36,9 @@ func getBazaarPackageREAME(c *gin.Context) {
repoURL := arg["repoURL"].(string)
repoHash := arg["repoHash"].(string)
packageType := arg["packageType"].(string)
ret.Data = map[string]interface{}{
"html": model.GetPackageREADME(repoURL, repoHash),
"html": model.GetPackageREADME(repoURL, repoHash, packageType),
}
}

View file

@ -117,6 +117,29 @@ type StageIndex struct {
Repos []*StageRepo `json:"repos"`
}
func getPreferredReadme(readme *Readme) string {
if nil == readme {
return "README.md"
}
ret := readme.Default
switch util.Lang {
case "zh_CN":
if "" != readme.ZhCN {
ret = readme.ZhCN
}
case "en_US":
if "" != readme.EnUS {
ret = readme.EnUS
}
default:
if "" != readme.EnUS {
ret = readme.EnUS
}
}
return ret
}
func getPreferredDesc(desc *Description) string {
if nil == desc {
return ""
@ -400,10 +423,28 @@ func isOutdatedTemplate(template *Template, bazaarTemplates []*Template) bool {
return false
}
func GetPackageREADME(repoURL, repoHash string, systemID string) (ret string) {
func GetPackageREADME(repoURL, repoHash, packageType string) (ret string) {
repoURLHash := repoURL + "@" + repoHash
data, err := downloadPackage(repoURLHash+"/README.md", false, systemID)
stageIndex := cachedStageIndex[packageType]
if nil == stageIndex {
return
}
var repo *StageRepo
for _, r := range stageIndex.Repos {
if r.URL == repoURLHash {
repo = r
break
}
}
if nil == repo {
return
}
readme := getPreferredReadme(repo.Package.Readme)
data, err := downloadPackage(repoURLHash+"/"+readme, false, "")
if nil != err {
ret = "Load bazaar package's README.md failed: " + err.Error()
return
@ -472,7 +513,7 @@ func downloadPackage(repoURLHash string, pushProgress bool, systemID string) (da
}
func incPackageDownloads(repoURLHash, systemID string) {
if strings.Contains(repoURLHash, ".md") {
if strings.Contains(repoURLHash, ".md") || "" == systemID {
return
}

View file

@ -27,8 +27,8 @@ import (
"github.com/siyuan-note/siyuan/kernel/bazaar"
)
func GetPackageREADME(repoURL, repoHash string) (ret string) {
ret = bazaar.GetPackageREADME(repoURL, repoHash, Conf.System.ID)
func GetPackageREADME(repoURL, repoHash, packageType string) (ret string) {
ret = bazaar.GetPackageREADME(repoURL, repoHash, packageType)
return
}