From e1098692398ce5b8d19e2d5e392468cb49f39a36 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Wed, 4 Jan 2023 11:26:26 +0800 Subject: [PATCH 1/4] =?UTF-8?q?:sparkles:=20=E5=88=86=E4=BA=AB=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E5=88=B0=E9=93=BE=E6=BB=B4=20https://github.com/siyua?= =?UTF-8?q?n-note/siyuan/issues/2004?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/model/assets.go | 10 ++++++++-- kernel/model/export.go | 8 ++++---- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/kernel/model/assets.go b/kernel/model/assets.go index c13262647..95e5ed218 100644 --- a/kernel/model/assets.go +++ b/kernel/model/assets.go @@ -281,11 +281,16 @@ func UploadAssets2Cloud(rootID string) (err error) { } sqlAssets := sql.QueryRootBlockAssets(rootID) - err = uploadCloud(sqlAssets) + err = uploadAssets2Cloud(sqlAssets, "5") return } -func uploadCloud(sqlAssets []*sql.Asset) (err error) { +// uploadAssets2Cloud 将资源文件上传到云端图床。 +// metaType 为服务端 Filemeta.FILEMETA_TYPE,这里只有两个值: +// +// 5: SiYuan,表示为 SiYuan 上传图床 +// 4: Client,表示作为客户端分享发布帖子时上传的文件 +func uploadAssets2Cloud(sqlAssets []*sql.Asset, metaType string) (err error) { syncedAssets := readWorkspaceAssets() var unSyncAssets []string for _, sqlAsset := range sqlAssets { @@ -355,6 +360,7 @@ func uploadCloud(sqlAssets []*sql.Asset) (err error) { SetResult(requestResult). SetFile("file[]", absAsset). SetCookies(&http.Cookie{Name: "symphony", Value: uploadToken}). + SetHeader("meta-type", metaType). Post(util.AliyunServer + "/apis/siyuan/upload?ver=" + util.Ver) if nil != reqErr { logging.LogErrorf("upload assets failed: %s", reqErr) diff --git a/kernel/model/export.go b/kernel/model/export.go index a3f64e250..983f4c887 100644 --- a/kernel/model/export.go +++ b/kernel/model/export.go @@ -59,7 +59,7 @@ func Export2Liandi(id string) (err error) { } sqlAssets := sql.QueryRootBlockAssets(id) - err = uploadCloud(sqlAssets) + err = uploadAssets2Cloud(sqlAssets, "4") if nil != err { return } @@ -100,7 +100,7 @@ func Export2Liandi(id string) (err error) { title := path.Base(tree.HPath) tags := tree.Root.IALAttr("tags") - content := exportMarkdownContent0(tree, "https://b3logfile.com/siyuan/", true, + content := exportMarkdownContent0(tree, "https://b3logfile.com/file/"+time.Now().Format("2006/01")+"/siyuan/"+Conf.User.UserId+"/", true, 4, 1, 0, "#", "#", "", "", @@ -728,7 +728,7 @@ func ExportStdMarkdown(id string) string { cloudAssetsBase := "" if IsSubscriber() { - cloudAssetsBase = "https://assets.b3logfile.com/siyuan/" + cloudAssetsBase = "https://assets.b3logfile.com/siyuan/" + Conf.User.UserId + "/" } return exportMarkdownContent0(tree, cloudAssetsBase, false, Conf.Export.BlockRefMode, Conf.Export.BlockEmbedMode, Conf.Export.FileAnnotationRefMode, @@ -1190,7 +1190,7 @@ func exportMarkdownContent0(tree *parse.Tree, cloudAssetsBase string, assetsDest luteEngine.SetFootnotes(true) luteEngine.SetKramdownIAL(false) if "" != cloudAssetsBase { - luteEngine.RenderOptions.LinkBase = cloudAssetsBase + Conf.User.UserId + "/" + luteEngine.RenderOptions.LinkBase = cloudAssetsBase } if assetsDestSpace2Underscore { // 上传到社区图床的资源文件会将空格转为下划线,所以这里也需要将文档内容做相应的转换 ast.Walk(tree.Root, func(n *ast.Node, entering bool) ast.WalkStatus { From 2e0a9f8c43598fefcffcf6bd64e89a0d2ea4c946 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Wed, 4 Jan 2023 13:38:50 +0800 Subject: [PATCH 2/4] =?UTF-8?q?:art:=20=E4=BF=9D=E5=AD=98=E5=91=BD?= =?UTF-8?q?=E5=90=8D=E6=9F=A5=E8=AF=A2=E5=88=A4=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/model/storage.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/kernel/model/storage.go b/kernel/model/storage.go index 2ca930c96..1e8806780 100644 --- a/kernel/model/storage.go +++ b/kernel/model/storage.go @@ -17,6 +17,7 @@ package model import ( + "errors" "os" "path/filepath" "sync" @@ -206,6 +207,10 @@ func RemoveCriterion(name string) (err error) { } func SetCriterion(criterion *Criterion) (err error) { + if "" == criterion.Name { + return errors.New(Conf.Language(142)) + } + criteriaLock.Lock() defer criteriaLock.Unlock() From fcb1bf3d9851196396948e670c964a3acaad46fc Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Wed, 4 Jan 2023 13:44:05 +0800 Subject: [PATCH 3/4] :memo: Update FAQ --- .../20210808180117-czj9bvb/20200813093015-u6bopdt.sy | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/guide/20210808180117-czj9bvb/20200813093015-u6bopdt.sy b/app/guide/20210808180117-czj9bvb/20200813093015-u6bopdt.sy index a08dd95e2..f4fd43e31 100644 --- a/app/guide/20210808180117-czj9bvb/20200813093015-u6bopdt.sy +++ b/app/guide/20210808180117-czj9bvb/20200813093015-u6bopdt.sy @@ -7,7 +7,7 @@ "id": "20200813093015-u6bopdt", "title": "常见问题", "type": "doc", - "updated": "20230103223722" + "updated": "20230104134309" }, "Children": [ { @@ -372,7 +372,7 @@ "ListData": {}, "Properties": { "id": "20210428213927-rbcfx2y", - "updated": "20230103223722" + "updated": "20230104134309" }, "Children": [ { @@ -501,7 +501,7 @@ }, "Properties": { "id": "20221202214653-s19pmcp", - "updated": "20230103223722" + "updated": "20230104134309" }, "Children": [ { @@ -509,7 +509,7 @@ "Type": "NodeParagraph", "Properties": { "id": "20221202214653-trmmieq", - "updated": "20230103223722" + "updated": "20230104134309" }, "Children": [ { @@ -528,7 +528,7 @@ { "Type": "NodeTextMark", "TextMarkType": "block-ref", - "TextMarkBlockRefID": "20221223111348-4xpodkj", + "TextMarkBlockRefID": "20221223215557-o6gfsoy", "TextMarkBlockRefSubtype": "s", "TextMarkTextContent": "闪卡" }, From 15bf394ba37caa49189a1623064b6dfe452bfafd Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Wed, 4 Jan 2023 13:50:18 +0800 Subject: [PATCH 4/4] :memo: Update FAQ --- kernel/model/assets.go | 26 ++++++++++++++++++++------ kernel/model/export.go | 2 +- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/kernel/model/assets.go b/kernel/model/assets.go index 95e5ed218..78914d245 100644 --- a/kernel/model/assets.go +++ b/kernel/model/assets.go @@ -281,16 +281,17 @@ func UploadAssets2Cloud(rootID string) (err error) { } sqlAssets := sql.QueryRootBlockAssets(rootID) - err = uploadAssets2Cloud(sqlAssets, "5") + err = uploadAssets2Cloud(sqlAssets, bizTypeUploadAssets) return } +const ( + bizTypeUploadAssets = "upload-assets" + bizTypeExport2Liandi = "export-liandi" +) + // uploadAssets2Cloud 将资源文件上传到云端图床。 -// metaType 为服务端 Filemeta.FILEMETA_TYPE,这里只有两个值: -// -// 5: SiYuan,表示为 SiYuan 上传图床 -// 4: Client,表示作为客户端分享发布帖子时上传的文件 -func uploadAssets2Cloud(sqlAssets []*sql.Asset, metaType string) (err error) { +func uploadAssets2Cloud(sqlAssets []*sql.Asset, bizType string) (err error) { syncedAssets := readWorkspaceAssets() var unSyncAssets []string for _, sqlAsset := range sqlAssets { @@ -337,6 +338,18 @@ func uploadAssets2Cloud(sqlAssets []*sql.Asset, metaType string) (err error) { if IsSubscriber() { limitSize = 10 * 1024 * 1024 // 10MB } + + // metaType 为服务端 Filemeta.FILEMETA_TYPE,这里只有两个值: + // + // 5: SiYuan,表示为 SiYuan 上传图床 + // 4: Client,表示作为客户端分享发布帖子时上传的文件 + var metaType = "5" + if bizTypeUploadAssets == bizType { + metaType = "5" + } else if bizTypeExport2Liandi == bizType { + metaType = "4" + } + var completedUploadAssets []string for _, absAsset := range uploadAbsAssets { fi, statErr := os.Stat(absAsset) @@ -361,6 +374,7 @@ func uploadAssets2Cloud(sqlAssets []*sql.Asset, metaType string) (err error) { SetFile("file[]", absAsset). SetCookies(&http.Cookie{Name: "symphony", Value: uploadToken}). SetHeader("meta-type", metaType). + SetHeader("biz-type", bizType). Post(util.AliyunServer + "/apis/siyuan/upload?ver=" + util.Ver) if nil != reqErr { logging.LogErrorf("upload assets failed: %s", reqErr) diff --git a/kernel/model/export.go b/kernel/model/export.go index 983f4c887..2a55d2904 100644 --- a/kernel/model/export.go +++ b/kernel/model/export.go @@ -59,7 +59,7 @@ func Export2Liandi(id string) (err error) { } sqlAssets := sql.QueryRootBlockAssets(id) - err = uploadAssets2Cloud(sqlAssets, "4") + err = uploadAssets2Cloud(sqlAssets, bizTypeExport2Liandi) if nil != err { return }