From 6ccf76e6cdf2b95a708769f35a4c0d8fda669333 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Wed, 29 Nov 2023 22:59:50 +0800 Subject: [PATCH] :art: Cloud inbox support preview audio and video https://github.com/siyuan-note/siyuan/issues/9780 --- app/src/layout/dock/Inbox.ts | 6 +++--- app/src/types/index.d.ts | 1 + kernel/model/cloud_service.go | 28 ++++++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/app/src/layout/dock/Inbox.ts b/app/src/layout/dock/Inbox.ts index 293ffea88..90861e037 100644 --- a/app/src/layout/dock/Inbox.ts +++ b/app/src/layout/dock/Inbox.ts @@ -199,7 +199,7 @@ export class Inbox extends Model { ${linkHTML}
-${(Lute.New()).MarkdownStr("", data.shorthandContent)} +${data.shorthandContent}
`; /// #else if (data.shorthandURL) { @@ -214,7 +214,7 @@ ${(Lute.New()).MarkdownStr("", data.shorthandContent)} ${linkHTML}
-${(Lute.New()).MarkdownStr("", data.shorthandContent)} +${data.shorthandContent}
`; /// #endif } @@ -332,7 +332,7 @@ ${(Lute.New()).MarkdownStr("", data.shorthandContent)} notebook: toNotebook[0], path: pathPosix().join(getDisplayName(toPath[0], false, true), Lute.NewNodeID() + ".sy"), title: replaceFileName(response.data.shorthandTitle), - md: response.data.shorthandContent, + md: response.data.shorthandMd, }, (docResponse) => { this.remove(item); fetchPost("/api/format/netAssets2LocalAssets", {id: docResponse.data.id}); diff --git a/app/src/types/index.d.ts b/app/src/types/index.d.ts index a9467c571..53a924bd4 100644 --- a/app/src/types/index.d.ts +++ b/app/src/types/index.d.ts @@ -262,6 +262,7 @@ interface ISnippet { interface IInbox { oId: string shorthandContent: string + shorthandMd: string shorthandDesc: string shorthandFrom: number shorthandTitle: string diff --git a/kernel/model/cloud_service.go b/kernel/model/cloud_service.go index 8e4ceb494..9ee50ceac 100644 --- a/kernel/model/cloud_service.go +++ b/kernel/model/cloud_service.go @@ -23,11 +23,13 @@ import ( "net/http" "os" "path/filepath" + "regexp" "strconv" "strings" "time" "github.com/88250/gulu" + "github.com/88250/lute/parse" "github.com/siyuan-note/httpclient" "github.com/siyuan-note/logging" "github.com/siyuan-note/siyuan/kernel/conf" @@ -456,6 +458,15 @@ func GetCloudShorthand(id string) (ret map[string]interface{}, err error) { t, _ := strconv.ParseInt(id, 10, 64) hCreated := util.Millisecond2Time(t) ret["hCreated"] = hCreated.Format("2006-01-02 15:04") + + md := ret["shorthandContent"].(string) + ret["shorthandMd"] = md + + luteEngine := NewLute() + luteEngine.SetFootnotes(true) + tree := parse.Parse("", []byte(md), luteEngine.ParseOptions) + content := luteEngine.ProtylePreview(tree, luteEngine.RenderOptions) + ret["shorthandContent"] = content return } @@ -483,6 +494,10 @@ func GetCloudShorthands(page int) (result map[string]interface{}, err error) { err = errors.New(result["msg"].(string)) return } + + luteEngine := NewLute() + audioRegexp := regexp.MustCompile(".*") + videoRegexp := regexp.MustCompile(".*") shorthands := result["data"].(map[string]interface{})["shorthands"].([]interface{}) for _, item := range shorthands { shorthand := item.(map[string]interface{}) @@ -490,6 +505,19 @@ func GetCloudShorthands(page int) (result map[string]interface{}, err error) { t, _ := strconv.ParseInt(id, 10, 64) hCreated := util.Millisecond2Time(t) shorthand["hCreated"] = hCreated.Format("2006-01-02 15:04") + + desc := shorthand["shorthandDesc"].(string) + desc = audioRegexp.ReplaceAllString(desc, "语音、") + desc = videoRegexp.ReplaceAllString(desc, "视频、") + desc = strings.TrimSuffix(desc, "、") + desc = strings.ReplaceAll(desc, "\n\n", "") + shorthand["shorthandDesc"] = desc + + md := shorthand["shorthandContent"].(string) + shorthand["shorthandMd"] = md + tree := parse.Parse("", []byte(md), luteEngine.ParseOptions) + content := luteEngine.ProtylePreview(tree, luteEngine.RenderOptions) + shorthand["shorthandContent"] = content } return }