From bff106b6a81dff5ffd18f65311ddf1b35946a5d3 Mon Sep 17 00:00:00 2001 From: Jonas Date: Thu, 2 Mar 2023 18:29:17 +0100 Subject: [PATCH] Use the href of links for link previews, not `node.textContent` Until now we used node.textContent to determine whether a paragraph is a link that warrants a link preview. Instead, we now check whether the paragraph has a single text node wich is a link and use its href. Text nodes with empty textContent are ignored in order to allow whitespaces before and after the link. This way we ensure to always show the preview of the link target, not of the description text. Both may differ, which has security implications. Also, links with a custom description get a link preview as well. And last but not least, it fixes link previes for URLs with spaces. (Background: for some reason, url-encoded spaces in textContent of links get decoded when they're transformed to markdown and written to a file. Therefore URLs with spaces lost their link preview once the Text session was closed prior to this commit) Fixes: #3871 Signed-off-by: Jonas --- src/nodes/ParagraphView.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/nodes/ParagraphView.vue b/src/nodes/ParagraphView.vue index 23b0ba6b55f..7d4f279e060 100644 --- a/src/nodes/ParagraphView.vue +++ b/src/nodes/ParagraphView.vue @@ -63,11 +63,11 @@ export default { }, beforeCreate() { this.debouncedUpdateText = debounce((newNode) => { - this.text = this.getTextReference(this.node?.textContent) + this.text = this.getTextReference(this.node) }, 500) }, created() { - this.text = this.getTextReference(this.node?.textContent) + this.text = this.getTextReference(this.node) }, beforeUnmount() { this.debouncedUpdateText?.cancel()