@@ -66,6 +66,9 @@ func SanitizeDocumentJSON(s string) (string, error) {
|
||||
}
|
||||
|
||||
func sanitizeNode(n *Node) {
|
||||
if n.Type == NodeImage {
|
||||
sanitizeImageNode(n)
|
||||
}
|
||||
for i := range n.Marks {
|
||||
sanitizeLinkMark(&n.Marks[i])
|
||||
}
|
||||
@@ -74,6 +77,23 @@ func sanitizeNode(n *Node) {
|
||||
}
|
||||
}
|
||||
|
||||
func sanitizeImageNode(n *Node) {
|
||||
attrs, err := n.ImageAttrs()
|
||||
if err != nil {
|
||||
n.Attrs = []byte(`{"src":""}`)
|
||||
return
|
||||
}
|
||||
|
||||
attrs.Src = safeImageSrc(attrs.Src)
|
||||
raw, err := json.Marshal(attrs)
|
||||
if err != nil {
|
||||
n.Attrs = []byte(`{"src":""}`)
|
||||
return
|
||||
}
|
||||
|
||||
n.Attrs = raw
|
||||
}
|
||||
|
||||
func sanitizeLinkMark(m *Mark) {
|
||||
if m.Type != MarkLink {
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user