From b55b99546e3f89209224bf75667541bb87cd3c31 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Thu, 27 Nov 2025 09:55:22 +0800 Subject: [PATCH] :art: Improve the setting of custom attribute names https://github.com/siyuan-note/siyuan/issues/16447 Signed-off-by: Daniel <845765@qq.com> --- kernel/model/blockial.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/kernel/model/blockial.go b/kernel/model/blockial.go index c7637b8f8..7ddcd8807 100644 --- a/kernel/model/blockial.go +++ b/kernel/model/blockial.go @@ -233,6 +233,8 @@ func setNodeAttrs0(node *ast.Node, nameValues map[string]string) (oldAttrs map[s } } + normalizeKeysToLower(nameValues) + for name, value := range nameValues { value = util.RemoveInvalidRetainCtrl(value) value = strings.TrimSpace(value) @@ -250,6 +252,23 @@ func setNodeAttrs0(node *ast.Node, nameValues map[string]string) (oldAttrs map[s return } +// normalizeKeysToLower 将 nameValues 的键统一为小写 https://github.com/siyuan-note/siyuan/issues/16447 +func normalizeKeysToLower(nameValues map[string]string) { + newMap := make(map[string]string, len(nameValues)) + for name, value := range nameValues { + lower := strings.ToLower(name) + newMap[lower] = value + } + + for k := range nameValues { + delete(nameValues, k) + } + + for k, v := range newMap { + nameValues[k] = v + } +} + func pushBroadcastAttrTransactions(oldAttrs map[string]string, node *ast.Node) { newAttrs := parse.IAL2Map(node.KramdownIAL) data := map[string]interface{}{"old": oldAttrs, "new": newAttrs}