mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-19 16:10:12 +01:00
🎨 Supports converting network assets in the database to local https://github.com/siyuan-note/siyuan/issues/12096
This commit is contained in:
parent
b4ece87cc0
commit
1f46d16055
1 changed files with 29 additions and 0 deletions
|
|
@ -1055,6 +1055,35 @@ func setAssetsLinkDest(node *ast.Node, oldDest, dest string) {
|
||||||
node.TextMarkAHref = strings.ReplaceAll(node.TextMarkAHref, oldDest, dest)
|
node.TextMarkAHref = strings.ReplaceAll(node.TextMarkAHref, oldDest, dest)
|
||||||
} else if ast.NodeAudio == node.Type || ast.NodeVideo == node.Type {
|
} else if ast.NodeAudio == node.Type || ast.NodeVideo == node.Type {
|
||||||
node.Tokens = bytes.ReplaceAll(node.Tokens, []byte(oldDest), []byte(dest))
|
node.Tokens = bytes.ReplaceAll(node.Tokens, []byte(oldDest), []byte(dest))
|
||||||
|
} else if ast.NodeAttributeView == node.Type {
|
||||||
|
needWrite := false
|
||||||
|
attrView, _ := av.ParseAttributeView(node.AttributeViewID)
|
||||||
|
if nil == attrView {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, keyValues := range attrView.KeyValues {
|
||||||
|
if av.KeyTypeMAsset != keyValues.Key.Type {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, value := range keyValues.Values {
|
||||||
|
if 1 > len(value.MAsset) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, asset := range value.MAsset {
|
||||||
|
if oldDest == asset.Content && oldDest != dest {
|
||||||
|
asset.Content = dest
|
||||||
|
needWrite = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if needWrite {
|
||||||
|
av.SaveAttributeView(attrView)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue