From b95980f4b54c7d8b17223b4f9db27e29103c5a23 Mon Sep 17 00:00:00 2001
From: Daniel <845765@qq.com>
Date: Wed, 25 Oct 2023 21:59:36 +0800
Subject: [PATCH] :art: When exporting Markdown, `
` nodes in non-tables
are replaced with `\n` text nodes
https://github.com/siyuan-note/siyuan/issues/9509
---
kernel/model/export.go | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/kernel/model/export.go b/kernel/model/export.go
index 863f26426..b17c6b3de 100644
--- a/kernel/model/export.go
+++ b/kernel/model/export.go
@@ -1525,6 +1525,25 @@ func exportMarkdownContent0(tree *parse.Tree, cloudAssetsBase string, assetsDest
})
}
+ // When exporting Markdown, `
` nodes in non-tables are replaced with `\n` text nodes https://github.com/siyuan-note/siyuan/issues/9509
+ var unlinks []*ast.Node
+ ast.Walk(tree.Root, func(n *ast.Node, entering bool) ast.WalkStatus {
+ if !entering {
+ return ast.WalkContinue
+ }
+
+ if ast.NodeBr == n.Type {
+ if !n.ParentIs(ast.NodeTableCell) {
+ n.InsertBefore(&ast.Node{Type: ast.NodeText, Tokens: []byte("\n")})
+ unlinks = append(unlinks, n)
+ }
+ }
+ return ast.WalkContinue
+ })
+ for _, unlink := range unlinks {
+ unlink.Unlink()
+ }
+
renderer := render.NewProtyleExportMdRenderer(tree, luteEngine.RenderOptions)
ret = gulu.Str.FromBytes(renderer.Render())
return