mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-21 09:00:12 +01:00
🎨 Ignore assets associated with the custom-data-assets block attribute when cleaning unreferenced assets https://github.com/siyuan-note/siyuan/issues/12574
This commit is contained in:
parent
0cd17327bc
commit
150aa2a7bf
2 changed files with 16 additions and 1 deletions
|
|
@ -992,6 +992,21 @@ func assetsLinkDestsInTree(tree *parse.Tree) (ret []string) {
|
||||||
func assetsLinkDestsInNode(node *ast.Node) (ret []string) {
|
func assetsLinkDestsInNode(node *ast.Node) (ret []string) {
|
||||||
ret = []string{}
|
ret = []string{}
|
||||||
ast.Walk(node, func(n *ast.Node, entering bool) ast.WalkStatus {
|
ast.Walk(node, func(n *ast.Node, entering bool) ast.WalkStatus {
|
||||||
|
if n.IsBlock() {
|
||||||
|
// 以 custom-data-assets 开头的块属性值可能是多个资源文件链接,需要计入
|
||||||
|
// Ignore assets associated with the `custom-data-assets` block attribute when cleaning unreferenced assets https://github.com/siyuan-note/siyuan/issues/12574
|
||||||
|
for _, kv := range n.KramdownIAL {
|
||||||
|
k := kv[0]
|
||||||
|
if strings.HasPrefix(k, "custom-data-assets") {
|
||||||
|
dest := kv[1]
|
||||||
|
if "" == dest || !treenode.IsRelativePath([]byte(dest)) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
ret = append(ret, dest)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 修改以下代码时需要同时修改 database 构造行级元素实现,增加必要的类型
|
// 修改以下代码时需要同时修改 database 构造行级元素实现,增加必要的类型
|
||||||
if !entering || (ast.NodeLinkDest != n.Type && ast.NodeHTMLBlock != n.Type && ast.NodeInlineHTML != n.Type &&
|
if !entering || (ast.NodeLinkDest != n.Type && ast.NodeHTMLBlock != n.Type && ast.NodeInlineHTML != n.Type &&
|
||||||
ast.NodeIFrame != n.Type && ast.NodeWidget != n.Type && ast.NodeAudio != n.Type && ast.NodeVideo != n.Type &&
|
ast.NodeIFrame != n.Type && ast.NodeWidget != n.Type && ast.NodeAudio != n.Type && ast.NodeVideo != n.Type &&
|
||||||
|
|
|
||||||
|
|
@ -752,7 +752,7 @@ func buildSpanFromNode(n *ast.Node, tree *parse.Tree, rootID, boxID, p string) (
|
||||||
|
|
||||||
var src []byte
|
var src []byte
|
||||||
for _, attr := range nodes[0].Attr {
|
for _, attr := range nodes[0].Attr {
|
||||||
if "src" == attr.Key || "data-assets" == attr.Key || "custom-data-assets" == attr.Key {
|
if "src" == attr.Key || strings.HasPrefix(attr.Key, "data-assets") || strings.HasPrefix(attr.Key, "custom-data-assets") {
|
||||||
src = gulu.Str.ToBytes(attr.Val)
|
src = gulu.Str.ToBytes(attr.Val)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue