diff --git a/kernel/model/file.go b/kernel/model/file.go index 53b7300a0..2e1a23663 100644 --- a/kernel/model/file.go +++ b/kernel/model/file.go @@ -1129,7 +1129,7 @@ func CreateDailyNote(boxID string) (p string, existed bool, err error) { // Creating a dailynote template supports doc attributes https://github.com/siyuan-note/siyuan/issues/10698 templateIALs := parse.IAL2Map(templateTree.Root.KramdownIAL) for k, v := range templateIALs { - if "name" == k || "alias" == k || "bookmark" == k || "memo" == k || "title" == k || strings.HasPrefix(k, "custom-") { + if "name" == k || "alias" == k || "bookmark" == k || "memo" == k || strings.HasPrefix(k, "custom-") { tree.Root.SetIALAttr(k, v) } } diff --git a/kernel/model/template.go b/kernel/model/template.go index bc71bb049..909fb2eb9 100644 --- a/kernel/model/template.go +++ b/kernel/model/template.go @@ -169,6 +169,16 @@ func DocSaveAsTemplate(id, name string, overwrite bool) (code int, err error) { luteEngine := NewLute() formatRenderer := render.NewFormatRenderer(tree, luteEngine.RenderOptions) md := formatRenderer.Render() + + // 单独渲染根节点的 IAL + if 0 < len(tree.Root.KramdownIAL) { + // 把 docIAL 中的 id 调整到第一个 + tree.Root.RemoveIALAttr("id") + tree.Root.KramdownIAL = append([][]string{{"id", tree.Root.ID}}, tree.Root.KramdownIAL...) + md = append(md, []byte("\n")...) + md = append(md, parse.IAL2Tokens(tree.Root.KramdownIAL)...) + } + name = util.FilterFileName(name) + ".md" name = util.TruncateLenFileName(name) savePath := filepath.Join(util.DataDir, "templates", name)