🎨 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) {
|
||||
ret = []string{}
|
||||
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 构造行级元素实现,增加必要的类型
|
||||
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 &&
|
||||
|
|
|
@ -752,7 +752,7 @@ func buildSpanFromNode(n *ast.Node, tree *parse.Tree, rootID, boxID, p string) (
|
|||
|
||||
var src []byte
|
||||
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)
|
||||
break
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue