From 3c00f5a3d157a3fc37edeb745900c489a76eb064 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Mon, 29 Dec 2025 09:19:24 +0800 Subject: [PATCH] :art: Improve av api https://github.com/siyuan-note/siyuan/issues/16715 Signed-off-by: Daniel <845765@qq.com> --- kernel/model/transaction.go | 10 ++++++++-- kernel/util/time.go | 5 +++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/kernel/model/transaction.go b/kernel/model/transaction.go index b45ebbe3f..40581502e 100644 --- a/kernel/model/transaction.go +++ b/kernel/model/transaction.go @@ -1203,10 +1203,15 @@ func (tx *Transaction) doInsert0(operation *Operation, tree *parse.Tree) (ret *T remains = append(remains, remain) } } - if "" == insertedNode.ID { + if !ast.IsNodeIDPattern(insertedNode.ID) { insertedNode.ID = ast.NewNodeID() insertedNode.SetIALAttr("id", insertedNode.ID) } + if ast.NodeAttributeView == insertedNode.Type { + if !ast.IsNodeIDPattern(insertedNode.AttributeViewID) { + insertedNode.AttributeViewID = ast.NewNodeID() + } + } var node *ast.Node nextID := operation.NextID @@ -1783,8 +1788,9 @@ func createdUpdated(node *ast.Node) { created := util.TimeFromID(node.ID) updated := node.IALAttr("updated") - if "" == updated { + if !util.IsTimeStr(updated) { updated = created + node.SetIALAttr("updated", updated) } if updated < created { updated = created diff --git a/kernel/util/time.go b/kernel/util/time.go index e767d0295..06ce818e9 100644 --- a/kernel/util/time.go +++ b/kernel/util/time.go @@ -26,6 +26,11 @@ import ( "github.com/88250/go-humanize" ) +func IsTimeStr(str string) bool { + _, err := time.Parse("20060102150405", str) + return nil == err +} + func GetTodayStart() (ret time.Time) { ret = time.Now() ret = time.Date(ret.Year(), ret.Month(), ret.Day(), 0, 0, 0, 0, time.Local)