From 51fb0ebb2218d49ce7718fb1fa5b6416e8c0f4c4 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Fri, 28 Feb 2025 17:43:55 +0800 Subject: [PATCH] :art: Improve HTML clipping https://github.com/siyuan-note/siyuan/issues/14233 --- kernel/api/extension.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/kernel/api/extension.go b/kernel/api/extension.go index 51be0800a..ca0547aea 100644 --- a/kernel/api/extension.go +++ b/kernel/api/extension.go @@ -238,6 +238,26 @@ func extensionCopy(c *gin.Context) { if "" != assetPath { dest.Tokens = []byte(assetPath) } + + // 检测 alt 和 title 格式,如果不是文本的话转换为文本 https://github.com/siyuan-note/siyuan/issues/14233 + if linkText := n.ChildByType(ast.NodeLinkText); nil != linkText { + if inlineTree := parse.Inline("", linkText.Tokens, luteEngine.ParseOptions); nil != inlineTree && nil != inlineTree.Root && nil != inlineTree.Root.FirstChild { + if fc := inlineTree.Root.FirstChild.FirstChild; nil != fc { + if ast.NodeText != fc.Type { + linkText.Tokens = []byte(fc.Text()) + } + } + } + } + if title := n.ChildByType(ast.NodeLinkTitle); nil != title { + if inlineTree := parse.Inline("", title.Tokens, luteEngine.ParseOptions); nil != inlineTree && nil != inlineTree.Root && nil != inlineTree.Root.FirstChild { + if fc := inlineTree.Root.FirstChild.FirstChild; nil != fc { + if ast.NodeText != fc.Type { + title.Tokens = []byte(fc.Text()) + } + } + } + } } } return ast.WalkContinue