🎨 Improve database text field exporting https://github.com/siyuan-note/siyuan/issues/12261

This commit is contained in:
Daniel 2024-08-17 08:32:49 +08:00
parent 347d4c7554
commit 6c2c003718
No known key found for this signature in database
GPG key ID: 86211BA83DF03017

View file

@ -2230,9 +2230,12 @@ func exportTree(tree *parse.Tree, wysiwyg, keepFold, avHiddenCol bool,
} }
cell := &ast.Node{Type: ast.NodeTableCell} cell := &ast.Node{Type: ast.NodeTableCell}
name := string(lex.EscapeProtyleMarkers([]byte(col.Name))) name := col.Name
if !wysiwyg {
name = string(lex.EscapeProtyleMarkers([]byte(col.Name)))
name = strings.ReplaceAll(name, "\\|", "|") name = strings.ReplaceAll(name, "\\|", "|")
name = strings.ReplaceAll(name, "|", "\\|") name = strings.ReplaceAll(name, "|", "\\|")
}
cell.AppendChild(&ast.Node{Type: ast.NodeText, Tokens: []byte(name)}) cell.AppendChild(&ast.Node{Type: ast.NodeText, Tokens: []byte(name)})
mdTableHeadRow.AppendChild(cell) mdTableHeadRow.AppendChild(cell)
} }
@ -2255,9 +2258,11 @@ func exportTree(tree *parse.Tree, wysiwyg, keepFold, avHiddenCol bool,
if av.KeyTypeBlock == cell.Value.Type { if av.KeyTypeBlock == cell.Value.Type {
if nil != cell.Value.Block { if nil != cell.Value.Block {
val = cell.Value.Block.Content val = cell.Value.Block.Content
if !wysiwyg {
val = string(lex.EscapeProtyleMarkers([]byte(val))) val = string(lex.EscapeProtyleMarkers([]byte(val)))
val = strings.ReplaceAll(val, "\\|", "|") val = strings.ReplaceAll(val, "\\|", "|")
val = strings.ReplaceAll(val, "|", "\\|") val = strings.ReplaceAll(val, "|", "\\|")
}
col := table.GetColumn(cell.Value.KeyID) col := table.GetColumn(cell.Value.KeyID)
if nil != col && col.Wrap { if nil != col && col.Wrap {
lines := strings.Split(val, "\n") lines := strings.Split(val, "\n")
@ -2274,9 +2279,11 @@ func exportTree(tree *parse.Tree, wysiwyg, keepFold, avHiddenCol bool,
} else if av.KeyTypeText == cell.Value.Type { } else if av.KeyTypeText == cell.Value.Type {
if nil != cell.Value.Text { if nil != cell.Value.Text {
val = cell.Value.Text.Content val = cell.Value.Text.Content
if !wysiwyg {
val = string(lex.EscapeProtyleMarkers([]byte(val))) val = string(lex.EscapeProtyleMarkers([]byte(val)))
val = strings.ReplaceAll(val, "\\|", "|") val = strings.ReplaceAll(val, "\\|", "|")
val = strings.ReplaceAll(val, "|", "\\|") val = strings.ReplaceAll(val, "|", "\\|")
}
col := table.GetColumn(cell.Value.KeyID) col := table.GetColumn(cell.Value.KeyID)
if nil != col && col.Wrap { if nil != col && col.Wrap {
lines := strings.Split(val, "\n") lines := strings.Split(val, "\n")