From 9acfd1fb581b5f6148187155a3dfef56c3fcb6bf Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Tue, 30 Aug 2022 23:41:36 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20=E6=95=B0=E6=8D=AE=E5=8E=86=E5=8F=B2?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E6=94=AF=E6=8C=81=E5=8F=AA=E8=AF=BB=E5=8F=AF?= =?UTF-8?q?=E8=A7=86=E5=8C=96=E9=A2=84=E8=A7=88=20https://github.com/siyua?= =?UTF-8?q?n-note/siyuan/issues/5735?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/model/history.go | 3 ++- kernel/model/render.go | 32 -------------------------------- 2 files changed, 2 insertions(+), 33 deletions(-) diff --git a/kernel/model/history.go b/kernel/model/history.go index c24d380d1..6eeb4d7be 100644 --- a/kernel/model/history.go +++ b/kernel/model/history.go @@ -154,7 +154,8 @@ func GetDocHistoryContent(historyPath string) (content string, err error) { os.RemoveAll(historyPath) return } - content = renderBlockMarkdown(historyTree.Root) + + content = luteEngine.Tree2BlockDOM(historyTree, luteEngine.RenderOptions) return } diff --git a/kernel/model/render.go b/kernel/model/render.go index 78fc1f8a4..a96ab20ad 100644 --- a/kernel/model/render.go +++ b/kernel/model/render.go @@ -202,35 +202,3 @@ func renderBlockMarkdownR0(id string, rendered *[]string) (ret []*ast.Node) { } return } - -func renderBlockMarkdown(node *ast.Node) string { - var nodes []*ast.Node - ast.Walk(node, func(n *ast.Node, entering bool) ast.WalkStatus { - if entering { - nodes = append(nodes, n) - if ast.NodeHeading == node.Type { - // 支持“标题块”引用 - children := treenode.HeadingChildren(n) - nodes = append(nodes, children...) - } - } - return ast.WalkSkipChildren - }) - - root := &ast.Node{Type: ast.NodeDocument} - luteEngine := NewLute() - luteEngine.SetKramdownIAL(false) - luteEngine.SetSuperBlock(false) - tree := &parse.Tree{Root: root, Context: &parse.Context{ParseOption: luteEngine.ParseOptions}} - renderer := render.NewFormatRenderer(tree, luteEngine.RenderOptions) - renderer.Writer = &bytes.Buffer{} - renderer.Writer.Grow(4096) - renderer.NodeWriterStack = append(renderer.NodeWriterStack, renderer.Writer) // 因为有可能不是从 root 开始渲染,所以需要初始化 - for _, node := range nodes { - ast.Walk(node, func(n *ast.Node, entering bool) ast.WalkStatus { - rendererFunc := renderer.RendererFuncs[n.Type] - return rendererFunc(n, entering) - }) - } - return strings.TrimSpace(renderer.Writer.String()) -}