diff --git a/kernel/filesys/json_parser.go b/kernel/filesys/json_parser.go index dac40d021..228c5e6a6 100644 --- a/kernel/filesys/json_parser.go +++ b/kernel/filesys/json_parser.go @@ -36,6 +36,7 @@ func ParseJSONWithoutFix(jsonData []byte, options *parse.Options) (ret *parse.Tr ret = &parse.Tree{Name: "", ID: root.ID, Root: &ast.Node{Type: ast.NodeDocument, ID: root.ID, Spec: root.Spec}, Context: &parse.Context{ParseOption: options}} ret.Root.KramdownIAL = parse.Map2IAL(root.Properties) + ret.Root.SetIALAttr("type", "doc") ret.Context.Tip = ret.Root if nil == root.Children { return @@ -57,6 +58,7 @@ func ParseJSON(jsonData []byte, options *parse.Options) (ret *parse.Tree, needFi ret = &parse.Tree{Name: "", ID: root.ID, Root: &ast.Node{Type: ast.NodeDocument, ID: root.ID, Spec: root.Spec}, Context: &parse.Context{ParseOption: options}} ret.Root.KramdownIAL = parse.Map2IAL(root.Properties) + ret.Root.SetIALAttr("type", "doc") for _, kv := range ret.Root.KramdownIAL { if strings.Contains(kv[1], "\n") { val := kv[1] diff --git a/kernel/filesys/tree.go b/kernel/filesys/tree.go index f75930baa..16cd1c707 100644 --- a/kernel/filesys/tree.go +++ b/kernel/filesys/tree.go @@ -146,6 +146,7 @@ func prepareWriteTree(tree *parse.Tree) (data []byte, filePath string, err error tree.Root.Spec = "1" logging.LogInfof("migrated tree [%s] from spec [%s] to [%s]", filePath, oldSpec, tree.Root.Spec) } + tree.Root.SetIALAttr("type", "doc") renderer := render.NewJSONRenderer(tree, luteEngine.RenderOptions) data = renderer.Render() diff --git a/kernel/go.mod b/kernel/go.mod index a947d3c88..85a700a83 100644 --- a/kernel/go.mod +++ b/kernel/go.mod @@ -9,7 +9,7 @@ require ( github.com/88250/clipboard v0.1.5 github.com/88250/epub v0.0.0-20230830085737-c19055cd1f48 github.com/88250/gulu v1.2.3-0.20231209020950-b7b6994e395c - github.com/88250/lute v1.7.7-0.20240314121716-744ca7756fe3 + github.com/88250/lute v1.7.7-0.20240316041855-e459dd2855d6 github.com/88250/pdfcpu v0.3.14-0.20230401044135-c7369a99720c github.com/88250/vitess-sqlparser v0.0.0-20210205111146-56a2ded2aba1 github.com/ClarkThan/ahocorasick v0.0.0-20231011042242-30d1ef1347f4 diff --git a/kernel/go.sum b/kernel/go.sum index bc06174ad..7011d364c 100644 --- a/kernel/go.sum +++ b/kernel/go.sum @@ -12,6 +12,8 @@ github.com/88250/gulu v1.2.3-0.20231209020950-b7b6994e395c h1:Fas3hxqP33xA9KKDV5 github.com/88250/gulu v1.2.3-0.20231209020950-b7b6994e395c/go.mod h1:pTWnjt+6qUqNnP9xltswsJxgCBVu3C7eW09u48LWX0k= github.com/88250/lute v1.7.7-0.20240314121716-744ca7756fe3 h1:qhyZg222TTfg1fbguxk3Nq21S1bcj+usXdJuxA0uBhk= github.com/88250/lute v1.7.7-0.20240314121716-744ca7756fe3/go.mod h1:+wUqx/1kdFDbWtxn9LYJlaCOAeol2pjSO6w+WJTVQsg= +github.com/88250/lute v1.7.7-0.20240316041855-e459dd2855d6 h1:tYUMTPtZoqfX87KdKztrGKjA7UTdoEf3MS1dtj3g0vo= +github.com/88250/lute v1.7.7-0.20240316041855-e459dd2855d6/go.mod h1:VDAzL8b+oCh+e3NAlmwwLzC53ten0rZlS8NboB7ljtk= github.com/88250/pdfcpu v0.3.14-0.20230401044135-c7369a99720c h1:Dl/8S9iLyPMTElnWIBxmjaLiWrkI5P4a21ivwAn5pU0= github.com/88250/pdfcpu v0.3.14-0.20230401044135-c7369a99720c/go.mod h1:S5YT38L/GCjVjmB4PB84PymA1qfopjEhfhTNQilLpv4= github.com/88250/vitess-sqlparser v0.0.0-20210205111146-56a2ded2aba1 h1:48T899JQDwyyRu9yXHePYlPdHtpJfrJEUGBMH3SMBWY= diff --git a/kernel/model/export.go b/kernel/model/export.go index 935403dbf..b16fef79e 100644 --- a/kernel/model/export.go +++ b/kernel/model/export.go @@ -2114,6 +2114,7 @@ func exportTree(tree *parse.Tree, wysiwyg, expandKaTexMacros, keepFold bool, if addTitle { if root, _ := getBlock(id, tree); nil != root { + root.IAL["type"] = "doc" title := &ast.Node{Type: ast.NodeHeading, HeadingLevel: 1, KramdownIAL: parse.Map2IAL(root.IAL)} content := html.UnescapeString(root.Content) title.AppendChild(&ast.Node{Type: ast.NodeText, Tokens: []byte(content)})