mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-30 13:28:48 +01:00
Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
c164e8741c
5 changed files with 33 additions and 9 deletions
|
|
@ -388,7 +388,7 @@ export const paste = async (protyle: IProtyle, event: (ClipboardEvent | DragEven
|
|||
tempElement.querySelectorAll('[contenteditable="false"][spellcheck]').forEach((e) => {
|
||||
e.setAttribute("contenteditable", "true");
|
||||
});
|
||||
const tempInnerHTML = tempElement.innerHTML;
|
||||
let tempInnerHTML = tempElement.innerHTML;
|
||||
if (!nodeElement.classList.contains("av") && tempInnerHTML.startsWith("[[{") && tempInnerHTML.endsWith("}]]")) {
|
||||
try {
|
||||
const json = JSON.parse(tempInnerHTML);
|
||||
|
|
@ -401,6 +401,10 @@ export const paste = async (protyle: IProtyle, event: (ClipboardEvent | DragEven
|
|||
insertHTML(tempInnerHTML, protyle, isBlock);
|
||||
}
|
||||
} else {
|
||||
if (-1 < tempInnerHTML.indexOf("NodeHTMLBlock")) {
|
||||
// 复制 HTML 块粘贴出来的不是 HTML 块 https://github.com/siyuan-note/siyuan/issues/12994
|
||||
tempInnerHTML = Lute.UnEscapeHTMLStr(tempInnerHTML);
|
||||
}
|
||||
insertHTML(tempInnerHTML, protyle, isBlock, false, true);
|
||||
}
|
||||
filterClipboardHint(protyle, protyle.lute.BlockDOM2StdMd(tempInnerHTML));
|
||||
|
|
|
|||
2
app/stage/protyle/js/lute/lute.min.js
vendored
2
app/stage/protyle/js/lute/lute.min.js
vendored
File diff suppressed because one or more lines are too long
|
|
@ -10,7 +10,7 @@ require (
|
|||
github.com/88250/epub v0.0.0-20230830085737-c19055cd1f48
|
||||
github.com/88250/go-humanize v0.0.0-20240424102817-4f78fac47ea7
|
||||
github.com/88250/gulu v1.2.3-0.20240612035750-c9cf5f7a4d02
|
||||
github.com/88250/lute v1.7.7-0.20241030103729-71876fb13925
|
||||
github.com/88250/lute v1.7.7-0.20241102053749-a0880752c7a4
|
||||
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
|
||||
|
|
|
|||
|
|
@ -14,8 +14,8 @@ github.com/88250/go-sqlite3 v1.14.13-0.20231214121541-e7f54c482950 h1:Pa5hMiBceT
|
|||
github.com/88250/go-sqlite3 v1.14.13-0.20231214121541-e7f54c482950/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
|
||||
github.com/88250/gulu v1.2.3-0.20240612035750-c9cf5f7a4d02 h1:3e5+yobj655pTeKOYMbJrnc1mE51ZkbXIxquTYZuYCY=
|
||||
github.com/88250/gulu v1.2.3-0.20240612035750-c9cf5f7a4d02/go.mod h1:MUfzyfmbPrRDZLqxc7aPrVYveatTHRfoUa5TynPS0i8=
|
||||
github.com/88250/lute v1.7.7-0.20241030103729-71876fb13925 h1:AVQZ9pyclFMeYPEai/9kuLlpzpq2UyCxaeaYMcq83Wk=
|
||||
github.com/88250/lute v1.7.7-0.20241030103729-71876fb13925/go.mod h1:VDAzL8b+oCh+e3NAlmwwLzC53ten0rZlS8NboB7ljtk=
|
||||
github.com/88250/lute v1.7.7-0.20241102053749-a0880752c7a4 h1:LEDeXpgAjr4Sy5l2Ap1g/u7fZSRFimNtNtSO3MXvrt4=
|
||||
github.com/88250/lute v1.7.7-0.20241102053749-a0880752c7a4/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=
|
||||
|
|
|
|||
|
|
@ -1235,7 +1235,7 @@ func getRefDefIDs(node *ast.Node) (refDefIDs []string) {
|
|||
}
|
||||
|
||||
func upsertAvBlockRel(node *ast.Node) {
|
||||
var avIDs []string
|
||||
var affectedAvIDs []string
|
||||
ast.Walk(node, func(n *ast.Node, entering bool) ast.WalkStatus {
|
||||
if !entering {
|
||||
return ast.WalkContinue
|
||||
|
|
@ -1244,13 +1244,33 @@ func upsertAvBlockRel(node *ast.Node) {
|
|||
if ast.NodeAttributeView == n.Type {
|
||||
avID := n.AttributeViewID
|
||||
if changed := av.UpsertBlockRel(avID, n.ID); changed {
|
||||
avIDs = append(avIDs, avID)
|
||||
affectedAvIDs = append(affectedAvIDs, avID)
|
||||
}
|
||||
}
|
||||
return ast.WalkContinue
|
||||
})
|
||||
avIDs = gulu.Str.RemoveDuplicatedElem(avIDs)
|
||||
for _, avID := range avIDs {
|
||||
|
||||
updatedNodes := []*ast.Node{node}
|
||||
var parents []*ast.Node
|
||||
for parent := node.Parent; nil != parent && ast.NodeDocument != parent.Type; parent = parent.Parent {
|
||||
parents = append(parents, parent)
|
||||
}
|
||||
updatedNodes = append(updatedNodes, parents...)
|
||||
for _, updatedNode := range updatedNodes {
|
||||
ast.Walk(updatedNode, func(n *ast.Node, entering bool) ast.WalkStatus {
|
||||
avs := n.IALAttr(av.NodeAttrNameAvs)
|
||||
if "" == avs {
|
||||
return ast.WalkContinue
|
||||
}
|
||||
|
||||
avIDs := strings.Split(avs, ",")
|
||||
affectedAvIDs = append(affectedAvIDs, avIDs...)
|
||||
return ast.WalkContinue
|
||||
})
|
||||
}
|
||||
|
||||
affectedAvIDs = gulu.Str.RemoveDuplicatedElem(affectedAvIDs)
|
||||
for _, avID := range affectedAvIDs {
|
||||
ReloadAttrView(avID)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue