Browse Source

enh: allow iframe in content

Timothy Jaeryang Baek 1 week ago
parent
commit
b082a7edbe
1 changed files with 15 additions and 0 deletions
  1. 15 0
      src/lib/components/chat/Messages/Markdown/HTMLToken.svelte

+ 15 - 0
src/lib/components/chat/Messages/Markdown/HTMLToken.svelte

@@ -69,6 +69,21 @@
 			>
 			</iframe>
 		{/if}
+	{:else if token.text && token.text.includes('<iframe')}
+		{@const match = token.text.match(/<iframe\s+[^>]*src="([^"]+)"[^>]*><\/iframe>/)}
+		{@const iframeSrc = match && match[1]}
+		{#if iframeSrc}
+			<iframe
+				class="w-full my-2"
+				src={iframeSrc}
+				title="Embedded content"
+				frameborder="0"
+				sandbox
+				onload="this.style.height=(this.contentWindow.document.body.scrollHeight+20)+'px';"
+			></iframe>
+		{:else}
+			{token.text}
+		{/if}
 	{:else if token.text.includes(`<file type="html"`)}
 		{@const match = token.text.match(/<file type="html" id="([^"]+)"/)}
 		{@const fileId = match && match[1]}