From 8811f329f927c39c84790c291264f1c988ec45d4 Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Fri, 9 Sep 2022 17:31:48 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20=E8=B0=83=E7=94=A8=20API=20`setBlockAtt?= =?UTF-8?q?rs`=20=E5=90=8E=E6=8E=A8=E9=80=81=20Transaction=20https://githu?= =?UTF-8?q?b.com/siyuan-note/siyuan/issues/5847?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/model/blockial.go | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/kernel/model/blockial.go b/kernel/model/blockial.go index 42e98bc81..be98e505a 100644 --- a/kernel/model/blockial.go +++ b/kernel/model/blockial.go @@ -22,7 +22,6 @@ import ( "time" "github.com/88250/gulu" - "github.com/88250/lute" "github.com/88250/lute/ast" "github.com/88250/lute/html" "github.com/88250/lute/lex" @@ -106,8 +105,7 @@ func SetBlockAttrs(id string, nameValues map[string]string) (err error) { return errors.New(fmt.Sprintf(Conf.Language(15), id)) } - luteEngine := NewLute() - oldDom := lute.RenderNodeBlockDOM(node, luteEngine.ParseOptions, luteEngine.RenderOptions) + oldAttrs := parse.IAL2Map(node.KramdownIAL) for name, _ := range nameValues { for i := 0; i < len(name); i++ { @@ -131,21 +129,17 @@ func SetBlockAttrs(id string, nameValues map[string]string) (err error) { IncSync() cache.PutBlockIAL(id, parse.IAL2Map(node.KramdownIAL)) - dom := lute.RenderNodeBlockDOM(node, luteEngine.ParseOptions, luteEngine.RenderOptions) - if oldDom == dom { - return - } - doOp := &Operation{Action: "update", Data: dom, ID: id} - undoOp := &Operation{Action: "update", Data: oldDom, ID: id} + newAttrs := parse.IAL2Map(node.KramdownIAL) + doOp := &Operation{Action: "updateAttrs", Data: map[string]interface{}{"old": oldAttrs, "new": newAttrs}, ID: id} trans := []*Transaction{{ DoOperations: []*Operation{doOp}, - UndoOperations: []*Operation{undoOp}, + UndoOperations: []*Operation{}, }} - pushBroadcastTransactions(trans) + pushBroadcastAttrTransactions(trans) return } -func pushBroadcastTransactions(transactions []*Transaction) { +func pushBroadcastAttrTransactions(transactions []*Transaction) { evt := util.NewCmdResult("transactions", 0, util.PushModeBroadcast, util.PushModeBroadcast) evt.Data = transactions util.PushEvent(evt)